是否可以检查广播是否以粘滞模式发送?可以中止/删除吗?

bla*_*yre 12 android broadcastreceiver

是否可以检查广播是否以粘滞模式发送?

我们可以完全中止/删除粘性广播吗?如果是,那么普通和有序广播都可以吗?

Dav*_*ser 23

onReceive()您可以使用以下调用:

isInitialStickyBroadcast()- 这将告诉您当前正在处理的广播是否为"粘性",并且当BroadcastReceiver注册时是当前广播.

isOrderedBroadcast() - 这将告诉您当前正在处理的广播是否作为"有序"广播发送.

如果你只是想看看是否有"粘性"广播,你可以打电话

registerReceiver (BroadcastReceiver receiver, IntentFilter filter)
Run Code Online (Sandbox Code Playgroud)

并提供null作为receiver参数.这将返回任何"粘性"广播而不实际注册接收器.

您可以使用以下方法删除粘性广播:

removeStickyBroadcast(Intent intent)
Run Code Online (Sandbox Code Playgroud)

但是,恕我直言,这将适得其反.通常发送"粘性"广播以指示某事物的当前状态.因此删除它意味着应用程序无法确定当前状态.