私は2つのアプリケーションを書いています。 MyServiceApplication
およびMyActivityApplication
である。 起動時にリモートサービスとして動作するMyService
を起動します。 MyActivityApplication
はMyActivityApplication
と通信するにはMyServiceApplication
クラスにアクセスできません。すべての例では、私は次のようにサービスにオンライン帯にアクティビティを参照してください。Android - 他のアプリからサービスにバインド
bindService(new Intent(Binding.this, MyService.class), mConnection, Context.BIND_AUTO_CREATE);
私のアプリケーションはMyService
と通信する必要があります。このコードは、GoogleのMessengerService
例に基づいています。
私が先に述べたような問題は、私がバインドしようとしているサービスが、このサービスを開始することを唯一の目的とする他のアプリケーションによって開始されたことです。
両方のアプリケーションを独立させておくことができる場所はありますか?アイデアは、私が同じサービスと通信することができる2番目、3番目、4番目のアプリケーションをすべて持っているということです。
だから、あなたが効果的に自分のアプリケーションをサービスするためのクラスが含まれているjarファイルを含めるべきであるとされて言っていますか?または、2つの別々のアプリケーションを作成しても、同じコードベースを使用する必要がありますか? – Ali
2つのアプリケーションで使用するライブラリプロジェクトhttp://developer.android.com/guide/developing/projects/projects-eclipse.htmlが必要です。ライブラリにはバインドされたサービスのバインダが含まれている必要があります。バインダを使用して、1)サービスアプリケーションからバインダインターフェイスを提供することができます。 2)第2のアプリをサービスにバインドするために使用される。 – Snicolas
AIDLを使用する別の方法は、http://developer.android.com/guide/developing/tools/aidl.htmlです。 「共用」ライブラリを補助ファイル全体に縮小することができます。 – Snicolas