我一直在使用Otto事件总线,这很棒。你能想到在包中的BroadcastReceiver实现上使用它还是在更传统的接口监听器模式上使用缺点?
例如,Google建议让片段的主机活动实现一个接口,子片段可以从该接口调用其主机活动。这很棒,除了它对Otto更容易。我唯一可以想到的是,拥有一个界面可以强制实施一些事件,但基于奥托的易用性,我真的不在乎只是小心听我想要的东西。
答案 0 :(得分:3)
由于otto使用反射而不是编译代码,因此otto使用反射而不是编译代码,但是,奥托还会缓存反射的内容"所以这个微小的性能命中仅适用于第一次触发某个事件类。
正如你所提到的那样,接口有合同执行,但考虑到Otto的易用性,只需要更加谨慎地编写代码。
LocalBroadcastReceivers可能是另一种选择,但考虑到创建意图,意图过滤器等的所有代码,它只是不值得。
所以恕我直言,是的,前进并在任何地方使用Otto(我们在我目前正在处理的应用程序上执行此操作,每月平均有920K活跃用户)