Sho*_*vik 86 android android-intent
我在android文档中遇到了这个术语,附带定义
这些是广播,其数据在完成后由系统保存,因此客户端可以快速检索该数据而无需等待下一次广播.
这是什么意思?有人可以用特定的例子详细说明它的用法吗?我相信我们必须要求获得使用此意图的许可吗?为什么这样?
<uses-permission android:name="android.permission.BROADCAST_STICKY"/> - Allows an application to broadcast sticky intents.
Run Code Online (Sandbox Code Playgroud)
Pau*_*rke 107
请阅读Mark Murphy的解释: sendStickyBroadcast和Android中的sendBroadcast有什么区别
这是一个如何使用粘性广播的抽象示例:
Intent intent = new Intent("some.custom.action");
intent.putExtra("some_boolean", true);
sendStickyBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
如果您正在冻结的活动中监听此广播(onPause),您可能会错过实际的事件.这允许您在触发广播后检查广播(onResume).
编辑:更多关于粘性广播...
还可以removeStickyBroadcast(Intent)
在API Level 5 +上查看, isInitialStickyBroadcast()
以便在Receiver中使用onReceive
.
希望有所帮助.
sendStickyBroadcast()
执行一个sendBroadcast(Intent)
称为粘性的,即你发送的意图在广播完成后保持不变,以便其他人可以通过返回值快速检索该数据registerReceiver(BroadcastReceiver, IntentFilter)
.在所有其他方面,这与行为相同sendBroadcast(Intent)
.通过操作系统发送的粘性广播的一个例子是ACTION_BATTERY_CHANGED
.当您调用registerReceiver()
该操作时 - 即使使用null BroadcastReceiver
- 您将获得上次为该操作广播的Intent.因此,您可以使用它来查找电池的状态,而无需注册电池的所有未来状态更改.
粘性广播的值是上次广播的值,当前保存在粘性缓存中.这不是现在收到的广播的价值.我想你可以说它就像一个浏览器cookie,你可以随时访问.粘性广播现已弃用:
此方法在API级别21中已弃用.不应使用粘性广播.它们不提供安全性(任何人都可以访问它们),没有保护(任何人都可以修改它们)以及许多其他问题.建议的模式是使用非粘性广播来报告某些内容已更改,并使用另一种机制让应用程序在需要时检索当前值.
归档时间: |
|
查看次数: |
97642 次 |
最近记录: |