用Otto代替一切

时间:2015-02-17 15:51:46

标签: android android-fragments otto

我一直在使用Otto事件总线,这很棒。你能想到在包中的BroadcastReceiver实现上使用它还是在更传统的接口监听器模式上使用缺点

例如,Google建议让片段的主机活动实现一个接口,子片段可以从该接口调用其主机活动。这很棒,除了它对Otto更容易。我唯一可以想到的是,拥有一个界面可以强制实施一些事件,但基于奥托的易用性,我真的不在乎只是小心听我想要的东西。

1 个答案:

答案 0 :(得分:3)

谷歌建议,因为他们不能建议人们使用其他图书馆。他们的建议总是基于如何在没有任何额外库(除支持库之外)的Android操作系统中完成。

由于otto使用反射而不是编译代码,因此otto使用反射而不是编译代码,但是,奥托还会缓存反射的内容"所以这个微小的性能命中仅适用于第一次触发某个事件类。

正如你所提到的那样,接口有合同执行,但考虑到Otto的易用性,只需要更加谨慎地编写代码。

LocalBroadcastReceivers可能是另一种选择,但考虑到创建意图,意图过滤器等的所有代码,它只是不值得。

所以恕我直言,是的,前进并在任何地方使用Otto(我们在我目前正在处理的应用程序上执行此操作,每月平均有920K活跃用户)