没有 Android 支持库的 LocalBroadcastManager 替代方案

9
在StackOverflow和其他地方有很多示例使用类LocalBroadcastManager来避免在应用程序外广播事件。但是,该类使用Android支持库,如包名所示:android.support.v4.content.LocalBroadcastManager。是否有标准SDK中等效的LocalBroadcastManager,不使用Android支持库?似乎android.content.Context中的sendBroadcast方法没有这种安全粒度。
1个回答

3
不,这个类并不存在,如果您想重新创建这个类,您可以阅读源代码,自己实现而不使用支持库。 无论如何,为什么不使用支持库呢?它很轻量级。
一个解决方法是使用普通的BroadCastReceiver,并将<android:exported="false">放在您的清单文件中,这样可以避免其他应用程序向您发送意图,因此您可以伪造一个本地接收器。
注意:我说“伪造”,因为LocalBroadcastManager有优化,不会将意图传播到系统中...
希望这有所帮助。

1
事实上,在阅读了LocalBroadcastManager的源代码并更好地理解了Android支持库背后的原理之后,我得出了同样的结论。无论如何,今天我会使用类似EventBus的东西。 - Vincent Hiribarren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接