【发布时间】:2014-05-17 06:19:18
【问题描述】:
我是 Square 对 Android 社区所做的开源贡献的忠实粉丝,并且正在研究他们的最新贡献 Otto(事件总线)
深入挖掘,我发现 Otto 使用反射并且没有有序广播(未使用的消息从一个接收器传递到下一个接收相同类型事件的接收器的模式) Otto 相信更多的是火和忘记模型。
现在 android 在它的 v4 支持库中有 LocalBroadcastManager (LBM) 用于相同的目的,尽管它更庞大并且对传递的对象有更多限制。但从好的方面来说,它确实支持有序广播,并且更类似于正常广播。
Otto 和 LBM 都在同一个进程空间内,所以就速度而言,我猜两者都是一样的。我能看到的唯一真正区别是 Otto 允许您定义自定义事件,并且您不必序列化/打包 Objects 。
因此,我真正的问题是,如果 LBM 做同样的事情,你什么时候会使用 Otto。
参考资料:
http://nick.perfectedz.com/otto-event-system/
Using Intents or an event bus to communicate within the same app
https://plus.google.com/107049228697365395345/posts/6j4ANWngCUY
【问题讨论】:
标签: android android-intent otto localbroadcastmanager