是否可以检查广播是否以粘性模式发送?
我们可以完全中止/删除粘性广播吗?如果是,那么普通和有序广播都能做到吗?
答案 0 :(得分:23)
在onReceive()
中,您可以使用以下来电:
isInitialStickyBroadcast()
- 这将告诉您当前正在处理的广播是否为“粘性”,并且当BroadcastReceiver
注册时是当前广播。
isOrderedBroadcast()
- 这将告诉您当前正在处理的广播是否作为“有序”广播发送。
如果您只想查看是否有“粘性”广播,可以致电
registerReceiver (BroadcastReceiver receiver, IntentFilter filter)
并提供null
作为receiver
参数。这将返回任何“粘性”广播而不实际注册接收器。
您可以使用以下方法删除粘性广播:
removeStickyBroadcast(Intent intent)
然而,恕我直言,这会适得其反。通常会发送“粘性”广播以指示某些内容的当前状态。因此删除它意味着应用程序无法确定当前状态。