2016-09-16 1 views
0

私は、アクティビティにバインドするサービスをアプリケーションに持っています。ただし、サービスは別のプロセスにあり、アクティビティでそのインスタンスを取得する方法を理解できません。同じプロセスでのサービスのために私は私がどのように私の場合にはこれを行うには見当もつかないAndroid AIDL:サービスが別のプロセスにある場合のアクティビティのサービスインスタンスを取得するにはどうすればよいですか?

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

を持っている私のServiceクラスでそれをonServiceConnected

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

インサイドこの

ような何かを行います。私はそのような例をオンラインで見つけることができませんでした。誰かが私を助けてくれますか?ありがとう!!!

答えて

2

できません!不可能です。実際、それは "別のプロセスで"の定義です。つまり、インスタンスが互いに直接アクセスすることはできません。

ただし、AIDLを使用してプロセス間通信を定義することはできます。実装方法については、AIDLガイドをご確認ください。

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

関連する問題