我想问一些例子,其中两个不同的活动(第一个活动中的按钮打开第二个活动)正在与一个服务(AIDL等)进行通信 我尝试了很多不同的教程,但它们只是关于如何进行一项活动 - >一项服务。
答案 0 :(得分:11)
这可能很旧了,但无论如何我都会尝试回答......
在Android中,看到只有一个Activity
可以一次绑定到Service
,并且一次只能显示一个Activity
,因此没有真正的理由要求一次绑定2个活动。
但是,如果您愿意,最好的解决方案是在Service
方法中绑定onResume()
,并在onPause()
方法中解除绑定。这允许您为服务提供两个不相关的活动访问权限,而一次只能绑定一个。
答案 1 :(得分:2)
每个Activity
负责Service
的绑定和解除绑定。这通常在onResume
/ onPause
或onStart
/ onStop
中完成,具体取决于您的要求。一个Activity
无法将另一个Activity
绑定到Service
。就是那样子。 :)
答案 2 :(得分:0)
您可以使用在不使用AIDL的情况下提供IPC通信的Messenger来完成此操作。这是您可以将多个活动绑定到服务的方式。
如果您需要服务与远程进程通信,那么 您可以使用Messenger为您的服务提供界面。 此技术允许您执行进程间通信(IPC) 无需使用AIDL。
看看this link。当您看到代码时,您会发现一个带有Handler的开关盒,这将满足您将从多个活动/组件发送的多个请求。谢谢。我希望答案对你有帮助。