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 指南以了解如何实施它

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