有没有办法判断是不是收到了 LocalBroadcastManager 广播?
Posted
技术标签:
【中文标题】有没有办法判断是不是收到了 LocalBroadcastManager 广播?【英文标题】:Is there a way to tell if LocalBroadcastManager broadcasts were received?有没有办法判断是否收到了 LocalBroadcastManager 广播? 【发布时间】:2013-09-04 17:20:01 【问题描述】:有没有办法判断是否收到了 LocalBroadcastManager 广播?或者正在被倾听?
基本上我有一个 IntentService 监听 Google Cloud 消息。当它收到一条消息时,我需要显示通知或提醒我的主要服务有一条新消息 - 至关重要的是我不想要两者!所以我需要知道消息是否由我的主要服务处理......
显然可以使用 sendOrderedBroadcast 和 BroadcastReceiver 来完成,但这对于我简单的私有进程内需求来说似乎有点过分了。
【问题讨论】:
为什么首先需要两个服务? @CommonsWare - 因为它们的用途和生命周期大不相同,因此它改进了我的应用程序架构以将它们分开。一个是 IntentService,另一个是绑定服务。 【参考方案1】:有没有办法判断是否收到了 LocalBroadcastManager 广播?或者正在被倾听?
sendBroadcast()
如果有 1+ 个接收者,则返回 true
,否则返回 false
。这没有记录,但这是基于当前的实现。我提交了an issue to get that documented。
因此,您的IntentService
可以使用sendBroadcast()
尝试向正在运行的Service
发送消息(如果存在)。如果是这样,sendBroadcast()
应该返回true
,并且IntentService
知道应该在那里处理消息。如果sendBroadcast()
返回false
,您可以提出Notification
。
【讨论】:
呃!我什至看到了布尔结果,只是认为这意味着广播很好......广播。谢谢。 我的猜测是确实是,这真是一个“启示”和解脱!谢谢@CommonsWare!以上是关于有没有办法判断是不是收到了 LocalBroadcastManager 广播?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法判断 python 3 中的字符串前面是不是有明确的 'u'?
有没有办法以编程方式判断 FastMM 是不是没有释放特定的内存块?
有没有办法判断图像 src 是不是在 javascript 中返回 null? [复制]