从广播事件切换到Otto有什么好处

时间:2014-01-06 16:12:45

标签: android android-broadcast otto

我偶然发现Otto,看起来它被用作广播事件的替代品。我阅读了文档但是,我不明白使用Otto是否有很多好处。

3 个答案:

答案 0 :(得分:8)

Otto应该与LocalBroadcastManager进行比较。这是因为Otto和LocalBroadcastManager都不支持inter-process communication

奥托的职业选手:

  • 更少的代码和更易读的代码。
  • 可以传递复杂对象(不需要对象序列化)。
  • 通过@Producer s进行即时值回调。
奥托的缺点:

  • Otto使用反射,这就是为什么它可能比LocalBroadcastManager慢,例如,你经常发送整数值。

答案 1 :(得分:6)

根据您的应用程序的结构可能无关紧要,但Otto也不需要Context方便发送事件或注册听众。

答案 2 :(得分:0)

我不喜欢使用Otto而不是本机检测,它需要从App的上下文中获取单例或丑陋的提取来获取实例。使用像Dagger这样的DI框架时,这不会改变。通过使用注释并使用基于类的事件而不是基于字符串的操作来保存如此多的代码是一个巨大的好处。