【发布时间】:2012-01-26 17:12:07
【问题描述】:
我有一个启动另一个远程服务的服务。当第二个服务启动后,它使用 IPC 绑定到第一个服务,一切正常。
我的问题是,我希望第一个服务也能够与第二个服务通信(现在,只实现了相反的方式)。我能以某种方式使用相同的活页夹吗?还是我应该将第一个服务绑定到第二个服务? 也许有办法让两个服务以某种方式在同一个连接上通话?
我们将不胜感激。
弗拉德
【问题讨论】:
我有一个启动另一个远程服务的服务。当第二个服务启动后,它使用 IPC 绑定到第一个服务,一切正常。
我的问题是,我希望第一个服务也能够与第二个服务通信(现在,只实现了相反的方式)。我能以某种方式使用相同的活页夹吗?还是我应该将第一个服务绑定到第二个服务? 也许有办法让两个服务以某种方式在同一个连接上通话?
我们将不胜感激。
弗拉德
【问题讨论】:
如果您需要第一个 Service 调用第二个 Service 上的方法,那么您需要从第二个 Service 获取一个 Binder。如果你只是想交流,你可以使用Broadcasts并在第一个Service中设置一个Receiver。
【讨论】:
我认为使用同一个绑定器的两种方式的通信对于服务来说是不可能的。我已经尝试了很多,我发现的问题是,使用您自己的示例的说法是从第二个服务检索到的 IBinder 接口始终为空。 我的意思是,第一个服务将绑定到第二个服务,以便获得一个有效的 IBinder 来与第二个服务对话。限制是当第二个服务调用第一个服务时,它不能将接口传递给第一个服务,因此可以发生回调(从第一个到第二个)。 相反,需要建立到第二个服务的新独立 IBinder 连接。希望有人可以帮助我们解决这个问题。
阿尔贝托。
【讨论】: