Android AIDL:当服务在另一个进程中时,如何在activity中获取服务实例?
Android AIDL: How to get service instance in activity when service is in another process?
我的应用程序中有一项绑定到 activity 的服务。然而,该服务在另一个进程中,我不知道如何在 activity 中获取它的实例。对于同一进程中的服务,我会这样做
里面onServiceConnected
public void onServiceConnected(ComponentName name, IBinder service) {
Service.Binder binder = (MService.Binder) binder;
//get service
musicSrv = binder.getService();
在我的 Service
class 我有
public class Binder extends Binder {
public Service getService() {
return Service.this;
}
}
对于我的情况,我不知道该怎么做。我在网上找不到任何这样的例子。有人可以帮帮我吗。谢谢!!!
你不能!这是不可能的。实际上,这就是"in another process"的定义,这意味着实例之间永远不能直接访问对方。
但是您可以使用 AIDL 为其定义进程间通信。请查看 AIDL 指南以了解如何实施它
我的应用程序中有一项绑定到 activity 的服务。然而,该服务在另一个进程中,我不知道如何在 activity 中获取它的实例。对于同一进程中的服务,我会这样做
里面onServiceConnected
public void onServiceConnected(ComponentName name, IBinder service) {
Service.Binder binder = (MService.Binder) binder;
//get service
musicSrv = binder.getService();
在我的 Service
class 我有
public class Binder extends Binder {
public Service getService() {
return Service.this;
}
}
对于我的情况,我不知道该怎么做。我在网上找不到任何这样的例子。有人可以帮帮我吗。谢谢!!!
你不能!这是不可能的。实际上,这就是"in another process"的定义,这意味着实例之间永远不能直接访问对方。
但是您可以使用 AIDL 为其定义进程间通信。请查看 AIDL 指南以了解如何实施它