如何在Android中替换sendStickyBroadcast?

问题描述:

如您所知, sendStickyBroadcast方法现在是deprecated。如何更换它?如何在Android中替换sendStickyBroadcast?

当然,我可以使用sendBroadcast,但它会不粘。

+1

请详细解释您的粘性广播的用例。例如,如果您希望在单进程应用程序的组件之间进行通信,请使用事件总线,并且greenrobot的EventBus提供粘性事件。 – CommonsWare

您可以使用事件总线,以下是一些最常用的库。 - https://github.com/greenrobot/EventBus - http://square.github.io/otto/ - https://blog.kaush.co/2014/12/24/implementing-an-event-bus-with-rxjava-rxbus/(如何使用的Rx作为事件总线)

另一种方法是创建一个监听广播,然后存储它检索的最后状态的类。在我看来,这种方法并不理想。

这是谷歌解释为什么Sticky Broadcasts被弃用。

不应使用粘滞广播。它们不提供安全性(任何人都可以访问它们),没有保护(任何人都可以修改它们)以及其他许多问题。推荐的模式是使用非粘性广播来报告某些事情已经发生变化,另一种机制是应用程序在需要时检索当前值。

希望这会有所帮助。