6

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

4

3 回答 3

8

Otto 应该与LocalBroadcastManager进行比较。这是因为 Otto 和 LocalBroadcastManager 都不支持进程间通信

奥托的优点:

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

奥托的缺点:

  • Otto 使用反射,这就是为什么它可能比 LocalBroadcastManager 慢,例如,如果您非常频繁地发送整数值。
于 2014-01-06T19:36:57.830 回答
6

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

于 2014-01-06T19:44:10.477 回答
0

我不喜欢使用 Otto 而不是本机检测,因为它需要一个单例或从 App 的上下文中进行丑陋的提取来获取一个实例。当使用像 dagger 这样的 DI 框架时,这不会改变。通过使用注释和使用基于类的事件而不是基于字符串的操作来节省大量代码是一个巨大的好处。

于 2015-12-14T11:05:13.227 回答