Android - 将回调从活动传递到服务

时间:2014-07-24 00:32:53

标签: android android-activity android-service

我的情况是活动需要启动2个服务,一个绑定,一个不绑定。

绑定将返回Ibinder到活动。但是活动需要一些如何为这两个服务提供回调,即两个服务必须能够在活动中的嵌套类中调用某些方法。

最好的方法是什么?我应该使用来自服务的广播,然后从onReceive()调用所需的API吗?或者我可以将IBinder从我的活动传递到意图中的服务,并且服务可以使用它来进行IPC回拨吗?

修改

忘了澄清......这两项服务与活动的应用程序不同。

1 个答案:

答案 0 :(得分:2)

您可以使用LocalBroadcastManagerIntent发送Activity

我认为这是此方案的最佳选择 EventBus Otto

  

EventBus是Android优化的发布/订阅事件总线。一个   Android应用程序的典型用例是粘贴活动,碎片和   背景线程在一起。这些元件的常规布线   经常会引入复杂且容易出错的依赖关系和生命周期   的问题。 EventBus通过所有参与者传播监听器   (例如,后台服务 - >活动 - >多个片段或帮助程序   类)被弃用了。 EventBus解耦事件发送者和   接收器因此简化了app组件之间的通信。   代码更少,质量更好。而且您不需要实现单个   接口!