Is there a way to tell if LocalBroadcastManager broadcasts were received? Or are being listened to?
Basically I have an IntentService listening for Google Cloud Messages. When it gets one I need to either show a notification OR alert my main Service that there's been a new message - crucially I don't want both! So I need to know whether the message was dealt with by my main Service ...
Clearly it can be done with sendOrderedBroadcast and a BroadcastReceiver but that seems overkill for my simple private intra-process needs.
sendBroadcast()
returnstrue
if there was 1+ receivers,false
otherwise. That's not documented, but that is based on the current implementation. I filed an issue to get that documented.Hence, your
IntentService
could usesendBroadcast()
to try to send a message to your runningService
, if it exists. If it does,sendBroadcast()
should returntrue
, and theIntentService
knows that the message should be handled there. IfsendBroadcast()
returnsfalse
, you can raise theNotification
.