私はいくつかのサービスクラスを持っています。これは複数のアラームを登録します。私BroadcastReceiverクラスでBroadcastReceiverへのバインドサービス
は、私がonReceive()メソッドは、サービスクラスのいくつかのメソッドを呼び出したいです。
しかし、私はそれらを結びつけることはできません。 BroadcastReceiverを内部クラスにしようとしましたが、さらにエラーが発生してアラームが発生しませんでした。
おかげ
私はいくつかのサービスクラスを持っています。これは複数のアラームを登録します。私BroadcastReceiverクラスでBroadcastReceiverへのバインドサービス
は、私がonReceive()メソッドは、サービスクラスのいくつかのメソッドを呼び出したいです。
しかし、私はそれらを結びつけることはできません。 BroadcastReceiverを内部クラスにしようとしましたが、さらにエラーが発生してアラームが発生しませんでした。
おかげ
はhttp://developer.android.com/reference/android/content/BroadcastReceiver.htmlライフサイクルを見てください。 BroadcastReceiverは、メッセージを処理するためにのみ作成されます。それは人生が非常に短いことを意味します、それはまた、ステートレスです。だからあなたはそれに何かを束縛することはできません。
とにかく、あなたは、このようにBroadcastReceiver、 のサービスフォームonReceive(Context context, Intent intent)
メソッドを起動しようとすることができます
public void onReceive(Context context, Intent intent) {
Intent intent2 = new Intent(context, GCMService.class);
intent2.putExtras(intent);
context.startService(intent2);
}
は、次に=サービスは、ブロードキャストメッセージを処理する必要があります。
注
http://developer.android.com/guide/components/bound-services.htmlから:のみの活動、サービス、およびコンテンツプロバイダがサービスにバインドすることができます - あなたは 放送受信機からのサービスにすることはできませんバインド。
私はいくつかの回避策を見つけたので、それはもはや関連しません。私はまだこれができるかどうかを知りたいです。私はすべての種類のpeekSerivce()を試して、静的インスタンスフィールドを使用していますが、どれも動作しません。 – Mugen