Risposte:
Ecco cosa dice l'SDK di AndroidsendStickyBroadcast()
:
Esegui un sendBroadcast (Intent) che è "persistente", il che significa che l'Intent che stai inviando rimane in giro dopo il completamento della trasmissione, in modo che altri possano recuperare rapidamente quei dati attraverso il valore di ritorno di registerReceiver (BroadcastReceiver, IntentFilter). In tutti gli altri modi, si comporta come sendBroadcast (Intent).
Un esempio di una trasmissione persistente inviata tramite il sistema operativo è ACTION_BATTERY_CHANGED
. Quando chiami registerReceiver()
per quell'azione, anche con a null
BroadcastReceiver
, ottieni l' Intent
ultima trasmissione per quell'azione. Quindi, è possibile utilizzarlo per trovare lo stato della batteria senza necessariamente registrarsi per tutti i futuri cambiamenti di stato della batteria.
Tipi : - Locale, normale, ordinato e appiccicoso
Trasmissione normale
: - usa sendBroadcast ()
: - trasmissione asincrona
: - qualsiasi ricevitore riceve la trasmissione non un ordine particolare
Trasmissione ordinata
: - usa sendOrderedBroadcast ()
: - trasmissione sincrona
: - il ricevitore riceve la trasmissione in base prioritaria
: - Possiamo anche semplicemente interrompere la trasmissione in questo tipo
Trasmissione locale
: - utilizzare solo quando la trasmissione viene utilizzata solo all'interno dello stesso processo
Trasmissione persistente
: - Il normale intento di trasmissione non è più disponibile dopo che questo è stato inviato ed elaborato dal sistema.
: - usa sendStickyBroadcast (Intent)
: - l'intento corrispondente è appiccicoso, il che significa che l'intento che stai inviando rimane in giro dopo che la trasmissione è completa.
: - per questo motivo altri possono recuperare rapidamente quei dati attraverso il valore di ritorno di registerReceiver (BroadcastReceiver, IntentFilter).
: - a parte questo lo stesso di sendBroadcast (Intent).
sendbroadcast()
- trasmissione normale, ma possiamo anche impostare la priorità.
sendstickybroadcast()
- L'intento passato con questo sarà stick per i futuri utenti che si registrano tramite codice (ricevitori dinamici). La trasmissione che rimarrà su Android e verrà riconsegnata o ritrasmessa alle future richieste da qualsiasi ricevente di trasmissione
Quando qualcuno invia una trasmissione persistente utilizzando, sendstickyBroadcast(intent);
quella trasmissione sarà disponibile per i futuri utenti che utilizzano ricevitori dinamici.
Ma ora non dovresti usare il sendStickyBroadcast()
metodo è deprecato
Dalla documentazione Android:
Questo metodo è stato deprecato nel livello API 21. Le trasmissioni persistenti non dovrebbero essere utilizzate. Non forniscono sicurezza (chiunque può accedervi), nessuna protezione (chiunque può modificarli) e molti altri problemi. Lo schema consigliato è utilizzare una trasmissione non appiccicosa per segnalare che qualcosa è cambiato, con un altro meccanismo per le app per recuperare il valore corrente ogni volta che lo si desidera
Spero che aiuti.