使用Intents或事件总线在同一个应用程序中进行通信

时间:2013-06-26 10:44:13

标签: android android-intent otto

我了解如何使用Intents与系统/其他应用程序进行通信。我了解如何在同一个应用程序中使用Intent。我也了解如何使用Otto在同一个App中进行通信。

使用Otto vs. Intents在我的活动/服务之间进行通信的Pro / Cons是什么?

1 个答案:

答案 0 :(得分:39)

使用Otto的优点:

  • 您可以设计自己的事件类型,而不必使用自定义操作或某些内容来区分Intent

  • 一切都在你自己的过程中(与startActivity()和亲属形成对比,即使你正在开始的活动是在你自己的应用程序中,总是涉及IPC),速度和安全性

  • 编码少一点,因为您无需实例化IntentFilterBroadcastReceiver个对象

  • 它提供制作人模式(作为粘性广播的准替代品)

  • 不属于操作系统,它有可能更频繁地更新

使用Otto的缺点:

  • 无法启动活动

  • 无法启动服务

  • 无法绑定服务

  • 无法发送广播

  • 它不能用于PendingIntent或任何真正的IPC

IOW,Otto的真实比较是LocalBroadcastManager,而不是Intents的一般用法。