Android AIDL:当服务在另一个进程中时,如何在活动中获取服务实例?

时间:2016-09-16 18:08:30

标签: android android-service aidl

我的应用程序中有一项与活动绑定的服务。然而,该服务在另一个过程中,我无法弄清楚如何在活动中获取其实例。对于同一过程中的服务,我会这样做

内部onServiceConnected

public void onServiceConnected(ComponentName name, IBinder service) {
    Service.Binder binder = (MService.Binder) binder;
    //get service
    musicSrv = binder.getService();

在我的Service课程中

public class Binder extends Binder {
        public Service getService() {
            return Service.this;
        }
    }

我不知道如何在我的情况下这样做。我在网上找不到任何这样的例子。有人可以帮帮我吗。谢谢!!!

1 个答案:

答案 0 :(得分:2)

你不能!这是不可能的。实际上,这是“在另一个进程中”的定义,它意味着实例永远不能直接相互访问。

但是,您可以使用AIDL为其定义进程间通信。请查看AIDL指南,了解如何实施

https://developer.android.com/guide/components/aidl.html