有没有办法判断是不是收到了 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? [复制]

Objective-C 有没有办法判断一个对象是不是设置为自动释放?

请问,安卓手机上,是不是有办法从网页中判断 某个程序是不是安装?请高人解答,谢谢。