我是开源贡献 Square 对 Android 社区所做的贡献的忠实粉丝,并且正在研究他们的最新贡献 Otto(事件总线)
深入挖掘,我发现 Otto 使用反射并且没有有序广播(未使用的消息从一个接收器传递到下一个接收相同类型事件的接收器的模式) Otto 相信更多的是“一劳永逸”模型。
现在 androidLocalBroadcastManager
在它的 v4 支持库中有 (LBM) 用于同样的目的,虽然它更笨重并且对传递的对象有更多的限制。但从好的方面来说,它确实支持有序广播,并且更类似于正常广播。
Otto 和 LBM 都在同一个进程空间内,所以就速度而言,我猜两者都是一样的。我能看到的唯一真正区别是 Otto 允许您定义自定义事件,并且您不必序列化/打包 Objects 。
因此,我真正的问题是,如果 LBM 做同样的事情,你什么时候会使用 Otto。
参考 :
http://nick.perfectedz.com/otto-event-system/
https://plus.google.com/107049228697365395345/posts/6j4ANWngCUY