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 的一部分。
我想允许多个对象同时订阅一个事件。
目前我看到两种方法:发送广播意图,或实现多播侦听器(管理器 class 包含订阅侦听器数组,并具有订阅和取消订阅功能),例如内置C# 中的事件。
Android 上的最佳做法是什么?或者还有其他值得考虑的方法吗?
Which is the best practice on Android?
如果您尝试在应用程序之间执行此操作,请使用广播。
如果您尝试在一个应用程序中执行此操作,请使用 an existing event bus implementation,例如 Otto 或 greenrobot 的 EventBus,而不是重新发明那个轮子。
将每个对象订阅到广播接收器可能不是一个好主意,因为执行顺序是未知的。在顶层,您可以有一个广播接收器,它将接收意图并有一个逻辑来通知其中的所有听众。
您可以尝试 LocalBroadcastManager,这是发送广播意图的轻量级解决方案,它是 Android 支持库 v4 的一部分。