如何将两个Android Activity绑定到一个服务?

pgccezyw  于 2022-12-25  发布在  Android
关注(0)|答案(3)|浏览(431)

我想问一些例子,其中两个不同的活动(第一个活动中的按钮打开第二个活动)正在与一个服务(AIDL等)通信。
我尝试过许多不同的教程,但它们都只是关于如何使一个活动变成一个服务。

huwehgph

huwehgph1#

这可能是旧的,但我会尝试回答它无论如何...
在Android中,由于一次只能将一个Activity绑定到一个Service,并且一次只能显示一个Activity,因此没有任何真实的的理由希望一次绑定两个Activity。
但是,如果您愿意,最好的解决方案是在onResume()方法中绑定Service,然后在onPause()方法中解除绑定,这样您就可以给予两个不相关的Activity访问服务,同时一次只能绑定一个Activity。

91zkwejq

91zkwejq2#

每个Activity负责绑定和解除绑定Service。这通常是在onResume/onPauseonStart/onStop中完成的,具体取决于您的要求。一个Activity不能将另一个Activity绑定到Service。事情就是这样。:)

dkqlctbz

dkqlctbz3#

您可以使用Messenger来提供IPC通信,而无需使用AIDL。这就是您如何将多个活动绑定到一个服务。
如果您需要服务与远程进程通信,那么您可以使用Messenger为您的服务提供接口。此技术允许您执行进程间通信(IPC),而无需使用AIDL。
看看这个链接。当你看到代码时,你会发现一个处理程序中有一个切换用例。这将满足你从多个活动/组件发送的多个请求。

相关问题