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?
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 theBroadcastReceiver
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
and supply
null
as thereceiver
parameter. This will return any "sticky" broadcast without actually registering the receiver.You can remove a sticky broadcast using:
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.