gpt4 book ai didi

android - Otto vs LocalBroadcast :

转载 作者:IT王子 更新时间:2023-10-28 23:52:54 26 4
gpt4 key购买 nike

我是 Square 对 Android 社​​区所做的开源贡献的忠实粉丝,并且正在研究他们的最新贡献 Otto(事件总线)

http://square.github.io/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

最佳答案

But on the brighter side it does support ordered broadcast

不是真的。 LocalBroadcastManager上没有sendOrderedBroadcast()IntentFilter上的优先级似乎没有被使用。如果您的意思是“广播将按照我注册接收者的顺序传递”,那可能是当前的行为,但不能保证它会保持这种状态。

Both Otto and LBM are within the same process space so in terms of speed i guess both would be same

它们会相似,但可能不完全相同。

Hence my real question is when would you use Otto if LBM does the same things

比较这两者,Otto 有一个更简洁的 API,恕我直言。

就我个人而言,我会使用 greenrobot's EventBus超过其中任何一个,因为它提供了更灵活的线程模型。

关于android - Otto vs LocalBroadcast :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com