Android LocalBroadcastManager的AletNative解决方案

Android LocalBroadcastManager的AletNative解决方案,android,broadcastreceiver,android-broadcast,Android,Broadcastreceiver,Android Broadcast,如何以编程方式使用普通广播实现LocalBroadcastManager功能,而无需在清单中保留任何内容。我的目标是将我的广播范围限制在我自己的应用程序中。要在应用程序的上下文中广播意图,则LocalBroadcastManager是最安全的方法。但是,如果您希望通过普通广播过程实现类似的功能,那么您可以明确定义一个应该收听广播的包。例如: Intent intent = new Intent("com.abc.my_action"); intent.setPackage("com.packag

如何以编程方式使用普通广播实现LocalBroadcastManager功能,而无需在清单中保留任何内容。我的目标是将我的广播范围限制在我自己的应用程序中。

要在应用程序的上下文中广播
意图
,则
LocalBroadcastManager
是最安全的方法。但是,如果您希望通过普通广播过程实现类似的功能,那么您可以明确定义一个应该收听广播的包。例如:

Intent intent = new Intent("com.abc.my_action");
intent.setPackage("com.package.other");  //Set an explicit application package 
sendBroadcast(intent);
此广播限制在ICS及以后版本中提供。欲了解更多信息,请阅读


另外,我仍然建议您坚持使用
LocalBroadcastManager
,因为它在您的应用程序上下文中广播意图,并且被认为是最安全的。

我的目标是将我的广播范围限制在我自己的应用程序中-这正是
LocalBroadcastManager
所做的。。。没有在舱单上保留任何东西正是
LocalBroadcastManager
所做的。即使我的目标是ICS(android-14)以后的版本,使用LocalBroadcastManager是否需要包含android-support-v4.jar?是的,
LocalBroadcastManager
仅通过android-support-v4软件包提供,这是在应用程序上下文中进行通信的最安全方式。但如果你不想在你的ICS构建项目中使用它,那么作为替代方案,你可能会依赖一些不太安全的方式,比如
intent.setPackage
和/或
intent.setComponent
。我猜谷歌正在开发LocalBroadcastManager的替代方案,如果他们没有将此api包含在Git for KitKat的最新主分支中。我怀疑他们的意图是要迫使所有开发者重新开始向后兼容android-support-v4。。。