我想让几个对象同时订阅一个事件。
目前我看到两种方法:发送广播意图,或实现多播侦听器(包含订阅侦听器数组的管理器类,以及订阅和取消订阅功能),例如C#中的内置事件。
哪个是Android上的最佳做法?或者还有其他值得考虑的方法吗?
答案 0 :(得分:1)
这是Android上的最佳做法?
如果您尝试在应用之间执行此操作,请使用广播。
如果您尝试在一个应用中执行此操作,请使用an existing event bus implementation,例如Otto或greenrobot的EventBus,而不是重新发明该轮。
答案 1 :(得分:1)
将每个对象预订到广播接收器可能不是一个好主意,因为执行顺序是未知的。在顶层,您可以拥有一个广播接收器,它将接收意图并具有通知其内部所有听众的逻辑。
答案 2 :(得分:1)
您可以尝试LocalBroadcastManager,这是一种用于发送广播意图的轻量级解决方案,它是Android支持库v4的一部分。