我对 android 中的 EventBus 和 RxJava 之间的区别感到困惑。我需要实现其中之一来解决我的问题,即在完成某些更改后通知某些组件,以便它们可以更新其状态。
另外,我读到 EventsBus 已因 RxJava 而被弃用,我不知道此信息是否属实。
EventBus
and RxJava
它们的性质不同。
EventBus
只是一个bus
顾名思义,它提供了向“总线”订阅和发布事件的机制,而无需您关心如何接线、这个“总线”实际上是什么等等。在 Android 的上下文中,EventBus
只是处理发送和接收的更简单的方法Broadcast
具有较少样板的消息。
RxJava
另一方面比这强大得多。是的,您可以订阅和发布事件,但您可以更好地控制流程 - 频率、所有事情发生在哪个线程上等。RxJava
(在我看来)是你可以很容易地操纵正在发布的数据,使用其中的一些数据operators
.
总而言之 - 如果您只关心发布一些事件并在收到时执行一些操作 - 您可能最好使用两者中最简单的一个,即某种Bus
,甚至是普通的旧BroadcastReceiver
s。如果您还可以从转换数据、处理线程或简化错误处理中受益 - 请选择RxJava
方法。请记住RxJava
通常有一个陡峭的学习曲线,因此需要一些时间来适应它的概念。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)