LocalBroadcastManager 可以将 Intent 发送到同一 App 中的全局 BroadcastReceivers 吗?
Can a LocalBroadcastManager send Intent to global BroadcastReceivers in the same App?
如果 LocalBroadcastManager 驻留在同一个 App 中,是否可以向全局注册的 BroadcastReceiver 发送 Intent?或者我必须为此使用 context.sendBroadcast() 吗?
没有。 LocalBroadcastManager
无法将 Intent 发送到全局 BroadcastReceivers
。
解释:
LocalBroadcastManager
有一个私有的 HashMap,当使用应用程序中的任何上下文显式调用 registerReceiver 方法时,它会将 BroadcastReceiver
映射到 ArrayList<IntentFilter>
。它不保存 AndroidManifest.xml
中声明的全局 BroadcastReceivers
的任何记录。因此,LocalBroadcastManager
不会将 Intent 发送到全局 BroadcastReceivers
.
查看下面的屏幕截图,这是我从我的应用程序调试 LocalBroadcastReceiver
时捕获的,该应用程序在 AndroidManifest.xml
中全局声明了三个 BroadcastReceivers
如果 LocalBroadcastManager 驻留在同一个 App 中,是否可以向全局注册的 BroadcastReceiver 发送 Intent?或者我必须为此使用 context.sendBroadcast() 吗?
没有。 LocalBroadcastManager
无法将 Intent 发送到全局 BroadcastReceivers
。
解释:
LocalBroadcastManager
有一个私有的 HashMap,当使用应用程序中的任何上下文显式调用 registerReceiver 方法时,它会将 BroadcastReceiver
映射到 ArrayList<IntentFilter>
。它不保存 AndroidManifest.xml
中声明的全局 BroadcastReceivers
的任何记录。因此,LocalBroadcastManager
不会将 Intent 发送到全局 BroadcastReceivers
.
查看下面的屏幕截图,这是我从我的应用程序调试 LocalBroadcastReceiver
时捕获的,该应用程序在 AndroidManifest.xml
BroadcastReceivers