2服务沟通

时间:2012-01-26 17:12:07

标签: android service ipc

我有一项启动另一项远程服务的服务。当第二个服务启动时,它使用IPC绑定到第一个服务,并且一切都很好。

我的问题是,我希望第一项服务能够与第二项服务进行对话(目前,只有相反的方式才能实施)。我可以用同样的Binder以某种方式做到这一点吗?或者我应该将第一个服务绑定到第二个服务? 也许有办法让两个服务以某种方式在同一个连接上交谈?

所有帮助将不胜感激。

维拉德

2 个答案:

答案 0 :(得分:4)

如果您需要第一个Service来调用第二个Service上的方法,那么您需要从第二个Binder获得Service。如果您只想沟通,可以使用Broadcasts并在第一个Receiver中设置Service

答案 1 :(得分:1)

我认为使用相同绑定器的双向通信对于服务是不可能的。我已经尝试了很多,我发现的问题,使用您自己的示例的说法是从第二个服务检索的IBinder接口始终为null。 我的意思是,第一个服务将绑定到第二个服务以获得有效的IBinder与第二个服务进行通信。限制是当第二个服务调用第一个服务时,它不能将接口传递给第一个服务,因此可以进行回调(从第一个到第二个)。 需要建立与第二个服务的新的独立IBinder连接。希望有人可以帮助我们。

阿尔贝托。