哪个 Intents/Broadcasts 可能是 Android 中的 "sticky"?
Which Intents/Broadcasts could be "sticky" in Android?
哪里可以找到Intent/Broadcast
可以置顶的资料?
通过操作系统发送的粘性广播示例是 ACTION_BATTERY_CHANGED。当我用 null
BroadcastReceiver
为那个动作调用 registerReceiver()
时——我得到了那个动作最后广播的 Intent
。
每当我找到最后一个值时:
//In Activity
val batteryIntent = registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED)); //sticky
val level = batteryIntent?.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
val scale = batteryIntent?.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
此 Intent:AudioManager.ACTION_HEADSET_PLUG
也有效,但有些 Intent 无效:LocationManager.MODE_CHANGED_ACTION
、Intent.ACTION_POWER_CONNECTED
BluetoothDevice.ACTION_ACL_CONNECTED
、...我知道,有些无效没有意义,但这些 Intent 的结果总是 null
,即使发生了变化,为什么?
对于ACTION_BATTERY_CHANGED
,文档中有信息:“这是一个粘性广播……”,但对于ACTION_HEADSET_PLUG
,则没有。
是否存在任何限制或拆分为粘性/非粘性或列出哪些 Intent 作为粘性工作?
为什么有些 Intent 有效而有些无效?
谢谢。
Where can I find information which Intent
/Broadcast can be sticky?
查看感兴趣的 Android 版本的源代码,搜索 sendStickyBroadcast()
.
Is exist any restriction or split to sticky / non-sticky or list which Intents work as sticky?
使用 sendStickyBroadcast()
发送粘性广播。从技术上讲,它不依赖于特定的 Intent
.
哪里可以找到Intent/Broadcast
可以置顶的资料?
通过操作系统发送的粘性广播示例是 ACTION_BATTERY_CHANGED。当我用 null
BroadcastReceiver
为那个动作调用 registerReceiver()
时——我得到了那个动作最后广播的 Intent
。
每当我找到最后一个值时:
//In Activity
val batteryIntent = registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED)); //sticky
val level = batteryIntent?.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
val scale = batteryIntent?.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
此 Intent:AudioManager.ACTION_HEADSET_PLUG
也有效,但有些 Intent 无效:LocationManager.MODE_CHANGED_ACTION
、Intent.ACTION_POWER_CONNECTED
BluetoothDevice.ACTION_ACL_CONNECTED
、...我知道,有些无效没有意义,但这些 Intent 的结果总是 null
,即使发生了变化,为什么?
对于ACTION_BATTERY_CHANGED
,文档中有信息:“这是一个粘性广播……”,但对于ACTION_HEADSET_PLUG
,则没有。
是否存在任何限制或拆分为粘性/非粘性或列出哪些 Intent 作为粘性工作?
为什么有些 Intent 有效而有些无效?
谢谢。
Where can I find information which
Intent
/Broadcast can be sticky?
查看感兴趣的 Android 版本的源代码,搜索 sendStickyBroadcast()
.
Is exist any restriction or split to sticky / non-sticky or list which Intents work as sticky?
使用 sendStickyBroadcast()
发送粘性广播。从技术上讲,它不依赖于特定的 Intent
.