2012-08-06 9 views
10

E 'possibile verificare se una trasmissione è stata inviata in modalità appiccicosa?È possibile verificare se una trasmissione è stata inviata in modalità persistente? Può essere abortito/rimosso?

È possibile interrompere/rimuovere completamente una trasmissione persistente? Se sì, allora può essere fatto per le trasmissioni normali e ordinate?

+2

Le trasmissioni appiccicose possono essere rimosse; vedere .... http://stackoverflow.com/questions/11839043/android-how-can-i-completely-abort-remove-sticky-broadcast –

risposta

20

In onReceive() è possibile utilizzare le seguenti chiamate:

isInitialStickyBroadcast() - Questo vi dirà se la trasmissione si è in fase di elaborazione è stato inviato come "appiccicoso" ed è stato quello corrente quando il BroadcastReceiver è stato registrato.

isOrderedBroadcast() - Questo indica se la trasmissione attualmente in elaborazione è stata inviata come trasmissione "ordinata".

Se si desidera solo per vedere se c'è una trasmissione "appiccicoso", è possibile chiamare

registerReceiver (BroadcastReceiver receiver, IntentFilter filter) 

e fornire null come parametro receiver. Ciò restituirà qualsiasi trasmissione "appiccicosa" senza registrare effettivamente il ricevitore.

È possibile rimuovere un broadcast permanenti utilizzando:

removeStickyBroadcast(Intent intent) 

Tuttavia, secondo me, che sarebbe controproducente. Di solito trasmissioni "appiccicose" vengono inviate per indicare lo stato corrente di qualcosa. Quindi rimuoverlo implicherebbe che non è possibile per un'applicazione determinare lo stato corrente.

Problemi correlati