2012-08-06 16 views
10

¿Es posible verificar si una transmisión se envió en modo adhesivo?¿Es posible verificar si una transmisión se envió en modo adhesivo? ¿Se puede abortar/eliminar?

¿Podemos abortar/eliminar por completo una emisión adhesiva? En caso afirmativo, ¿se puede hacer tanto para transmisiones normales como ordenadas?

+2

Las emisiones fijas se pueden eliminar; ver .... http://stackoverflow.com/questions/11839043/android-how-can-i-completely-abort-remove-sticky-broadcast –

Respuesta

20

En onReceive() puede utilizar las siguientes llamadas:

isInitialStickyBroadcast() - Esto le dirá si el programa está procesando actualmente fue enviado como "pegajosa" y era el actual cuando el BroadcastReceiver se registró.

isOrderedBroadcast() - Esto le indicará si la transmisión que está procesando actualmente se envió como una transmisión "ordenada".

Si lo que desea es ver si hay una emisión "pegajosa", puede llamar

registerReceiver (BroadcastReceiver receiver, IntentFilter filter) 

y suministrar null como parámetro receiver. Esto devolverá cualquier emisión "fija" sin registrar realmente el receptor.

Puede eliminar una emisión persistente usando:

removeStickyBroadcast(Intent intent) 

Sin embargo, en mi humilde opinión que sería contraproducente. Por lo general, las transmisiones "adhesivas" se envían para indicar el estado actual de algo. Entonces, eliminarlo implicaría que no es posible que una aplicación determine el estado actual.

Cuestiones relacionadas