Is this possible to check if a broadcast was sent in sticky mode?
Can we completely abort/remove a sticky broadcast? If yes, then can it be done for both normal and ordered broadcasts?
In onReceive()
you can use the following calls:
isInitialStickyBroadcast()
- This will tell you if the broadcast you are currently processing was sent as "sticky" and was the current one when the BroadcastReceiver
was registered.
isOrderedBroadcast()
- This will tell you if the broadcast you are currently processing was sent as an "ordered" broadcast.
If you just want to see if there is a "sticky" broadcast, you can call
registerReceiver (BroadcastReceiver receiver, IntentFilter filter)
and supply null
as the receiver
parameter. This will return any "sticky" broadcast without actually registering the receiver.
You can remove a sticky broadcast using:
removeStickyBroadcast(Intent intent)
However, IMHO that would be counter-productive. Usually "sticky" broadcasts are sent to indicate the current state of something. So removing it would imply that it isn't possible for an application to determine the current state.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With