Answers:
这是Android SDK所说的sendStickyBroadcast()
:
执行一个“粘性”的sendBroadcast(Intent),这意味着您要发送的Intent在广播完成后仍然存在,以便其他人可以通过registerReceiver(BroadcastReceiver,IntentFilter)的返回值快速检索该数据。在所有其他方面,此行为与sendBroadcast(Intent)相同。
通过操作系统发送的粘性广播的一个示例是ACTION_BATTERY_CHANGED
。当您要求registerReceiver()
采取该行动时-即使使用-也会null
BroadcastReceiver
获得该Intent
行动的最后广播。因此,您可以使用它来查找电池的状态,而不必注册电池中所有将来的状态变化。
类型:-本地,常规,有序和粘性
普通广播
:-使用sendBroadcast()
:-异步广播
:-任何接收者都接收广播而不是任何特定命令
有序广播
:-使用sendOrderedBroadcast()
:-同步广播
:-接收方以优先级接收广播
:-我们也可以简单地中止这种广播
本地广播
:-仅在仅在同一进程内使用广播时使用
即时广播
:-在系统发送和处理常规广播意图后,该广播意图不再可用。
:-使用sendStickyBroadcast(Intent)
:-对应的意图是粘性的,这意味着您要发送的意图在广播完成后仍然存在。
:-因此,其他人可以通过registerReceiver(BroadcastReceiver,IntentFilter)的返回值快速检索该数据。
:-除此之外,它与sendBroadcast(Intent)相同。
sendbroadcast()
-正常播放,但我们也可以设置优先级。
sendstickybroadcast()
-与此一起传递的意图将对将来通过代码注册的用户(动态接收者)适用。广播将继续使用android,并将重新传送或重新广播,以接收来自任何广播接收器的将来请求
当有人使用发送发送粘性广播时sendstickyBroadcast(intent);
,该广播将可供使用动态接收器的将来用户使用。
但是现在您不应该使用sendStickyBroadcast()
不推荐使用的 方法
来自Android文档:
此方法在API级别21中已弃用。不应使用粘性广播。它们不提供安全性(任何人都可以访问它们),不提供保护(任何人都可以修改它们)以及许多其他问题。推荐的模式是使用非粘性广播来报告已发生更改,并通过另一种机制让应用程序在需要时检索当前值
我希望这有帮助。