Android 上的广播意图与多播侦听器实现

Broadcast intent vs multicast listener implementation on Android

我想允许多个对象同时订阅一个事件。

目前我看到两种方法:发送广播意图,或实现多播侦听器(管理器 class 包含订阅侦听器数组,并具有订阅和取消订阅功能),例如内置C# 中的事件。

Android 上的最佳做法是什么?或者还有其他值得考虑的方法吗?

Which is the best practice on Android?

如果您尝试在应用程序之间执行此操作,请使用广播。

如果您尝试在一个应用程序中执行此操作,请使用 an existing event bus implementation,例如 Otto 或 greenrobot 的 EventBus,而不是重新发明那个轮子。

将每个对象订阅到广播接收器可能不是一个好主意,因为执行顺序是未知的。在顶层,您可以有一个广播接收器,它将接收意图并有一个逻辑来通知其中的所有听众。

您可以尝试 LocalBroadcastManager,这是发送广播意图的轻量级解决方案,它是 Android 支持库 v4 的一部分。