有什么方法可以从代码中获取 Manifest.xml 中定义的 BroadcastReceiver 的引用吗?
就我而言,我们使用的 BroadcastReceiver 需要包含在 Manifest.xml 中。然而,它具有我想在我们的代码中重用的功能。因此,我不想创建另一个类似的 BroadcastReceiver 并从代码中实例化它,而是想获取对现有广播接收器的引用。
附加信息:
我的目标是从我的活动中订阅 BroadcastReceiver 上的事件 - 我想重用的事件 - 而不是在我的活动中创建此接收器的另一个实例,我想获取对现有接收器的引用。
注册时BroadcastReceiver
在清单中,您正在注册该类,而不是它的实例。每次广播发生时,您的<receiver>
需要句柄,因此会创建一个新实例来执行此操作,因此您无法真正获得对所描述的实例的引用。
动态实例化并注册您也在清单中静态注册的 Receiver 类的实例是完全可以的。不过,我要指出的是,如果静态注册的类无论如何都要运行 - 也就是说,如果它将处理与动态注册的类相同的广播 - 您可能会考虑只通知您的Activity
来自 Receiver 类 - 例如,LocalBroadcastManager
、另一个事件总线实现等 - 而不是本质上重复接收器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)