我的情况是活动需要启动2个服务,一个绑定,一个不绑定。
绑定将返回Ibinder到活动。但是活动需要一些如何为这两个服务提供回调,即两个服务必须能够在活动中的嵌套类中调用某些方法。
最好的方法是什么?我应该使用来自服务的广播,然后从onReceive()调用所需的API吗?或者我可以将IBinder从我的活动传递到意图中的服务,并且服务可以使用它来进行IPC回拨吗?
修改
忘了澄清......这两项服务与活动的应用程序不同。
答案 0 :(得分:2)
您可以使用LocalBroadcastManager
为Intent
发送Activity
我认为这是此方案的最佳选择 EventBus 或 Otto
EventBus是Android优化的发布/订阅事件总线。一个 Android应用程序的典型用例是粘贴活动,碎片和 背景线程在一起。这些元件的常规布线 经常会引入复杂且容易出错的依赖关系和生命周期 的问题。 EventBus通过所有参与者传播监听器 (例如,后台服务 - >活动 - >多个片段或帮助程序 类)被弃用了。 EventBus解耦事件发送者和 接收器因此简化了app组件之间的通信。 代码更少,质量更好。而且您不需要实现单个 接口!