2014-06-08 16 views
5

In Android, qual è lo scopo dell'alias-attività <>? Da documentation, sembra che sia solo un altro nome per un'attività esistente <> con filtri di intent che sostituiscono il filtro dell'attività target (la mia comprensione fino ad ora).android - <alias attività> tag manifest

Qual è il suo uso pratico?

Un chiamante può inviare un intento sia al destinatario che alias?

+1

http://blog.danlew.net/2014/01/16/preserve-your-launchers-use-activity-alias/ –

risposta

6

sembra che è solo un altro nome per un < un'attività esistente> con filtri intento che sostituiscono il filtro della propria attività bersaglio (la mia comprensione finora).

Lo definirei "fornire filtri aggiuntivi", più che ignorare.

Qual è il suo uso pratico?

È possibile disattivare i componenti, come <activity-alias>. Non è possibile disabilitare gli elementi <intent-filter> (anche se sarebbe molto utile).

Quindi, se si dispone di un'attività che si vuole essere a disposizione tutto il tempo, ma solo alcuni del tempo offrire un filtro specifico (o filtri), <activity-alias> è per voi.

Un esempio moderno di questo viene dalla nuova Storage Access Framework. In passato, per rendere i documenti disponibili per le app di terze parti, è possibile implementare un'attività ACTION_GET_CONTENT con un tipo di pubblicità MIME rilevante (e, eventualmente, ContentProvider percorsi per un proprio fornitore) con un valore di <intent-filter>. Tuttavia, se si sta adottando lo Storage Access Framework su Android 4.4+, non si vuole anche avere l'attività ACTION_GET_CONTENT disponibile - l'effetto netto è che tutto il tuo verrà visualizzato due volte. Quindi, su dispositivi Android 4.4+, devi disabilitare l'intera attività (se non ne hai bisogno per qualcos'altro) o spostare lo ACTION_GET_CONTENT<intent-filter> su un <activity-alias>, in modo da poterlo disabilitare separatamente. Questo è trattato in modo più dettagliato in the documentation.

TL; DR: Dubito che molti sviluppatori utilizzino lo <activity-alias>, sebbene abbia i suoi casi d'uso (ad esempio, il programma di avvio citato in un commento sulla domanda).

Un chiamante può inviare un obiettivo sia al destinatario che alias?

Um, se con ciò intendi "posso usare startActivity() per avviare l'attività o l'alias?", Quindi, sì.

+0

Grazie per la risposta! :) – Jake

Problemi correlati