首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安卓系统中的sendStickyBroadcast和sendBroadcast有什么不同

安卓系统中的sendStickyBroadcast和sendBroadcast有什么不同
EN

Stack Overflow用户
提问于 2010-04-06 19:42:25
回答 3查看 62.9K关注 0票数 105

安卓系统中的sendStickyBroadcastsendBroadcast有什么不同?

EN

回答 3

Stack Overflow用户

发布于 2010-04-06 20:22:57

Here is what the Android SDK says about sendStickyBroadcast()

执行一个“粘滞”的意图(SendBroadcast),这意味着您发送的意图在广播完成后仍然存在,这样其他人就可以通过registerReceiver(BroadcastReceiver,IntentFilter)的返回值快速检索该数据。在所有其他方面,这与sendBroadcast(Intent)的行为相同。

通过操作系统发送的粘滞广播的一个示例是ACTION_BATTERY_CHANGED。当您为该操作调用registerReceiver()时--即使使用null BroadcastReceiver --您也会得到上次为该操作广播的Intent。因此,您可以使用它来查找电池的状态,而不必注册电池中所有未来的状态更改。

票数 120
EN

Stack Overflow用户

发布于 2014-02-17 20:36:06

类型 :-局部、正常、有序和粘滞

正常广播

:-使用sendBroadcast()

:-异步广播

:-任何接收器接收广播,而不是任何特定的命令

有序广播

:-使用sendOrderedBroadcast()

:-同步广播

:-接收器以优先级为基础接收广播

:-我们也可以简单地中止这种类型的广播

本地广播

:-仅当广播仅在同一进程内使用时使用

粘滞广播

:-正常的广播意图在系统发送和处理后不再可用。

:-使用sendStickyBroadcast(Intent)

:-相应的意图是粘性的,这意味着您正在发送的意图在广播完成后仍然存在。

:-正因为如此,其他人可以通过registerReceiver(BroadcastReceiver,IntentFilter)的返回值快速检索该数据。

:-除了这个与sendBroadcast(Intent)相同。

票数 56
EN

Stack Overflow用户

发布于 2015-12-21 20:16:19

sendbroadcast() -普通广播,但我们也可以设置优先级。

sendstickybroadcast() -与此一起传递的意图将为通过代码(动态接收器)注册的未来用户提供支持。将继续使用android的广播,并将重新传送或重新广播给来自任何广播接收器的未来请求

当有人使用sendstickyBroadcast(intent);发送粘性广播时,该广播将可供使用动态接收器的未来用户使用。

但是现在您不应该使用sendStickyBroadcast()方法,它已被弃用

来自Android文档:

此方法在API级别21中已弃用。不应使用粘滞广播。它们没有提供安全性(任何人都可以访问它们),没有保护(任何人都可以修改它们),以及许多其他问题。推荐的模式是使用非粘滞广播来报告发生了变化,并使用另一种机制让应用程序在需要时检索当前值

我希望这能帮到你。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2584497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档