アラームがアクティブになったときにアクティブになるサービスがあります。 IntentServiceを拡張し、そのサービスでMainActivityにメッセージを送信する必要があります。このメッセージを受け取ったMainActivityは、次に必要な作業を行います。MainActivityが終了したときにLocalBroadcastManagerを使用するAndroid
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
MainActivityが現在アクティブ(表示中)の場合は正常です。 MainActivityが現在アクティブでない場合しかし、私はそれを使用して作成した:MainActivityが現在アクティブ(表示)である
PendingIntent mPendingIntent = PendingIntent.getActivity(this, 0,
new Intent(this, MainActivity.class), PendingIntent.FLAG_ONE_SHOT);
mPendingIntent.send(Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY);
場合、メッセージはそれに達します。しかし、PendingIntentを使用してMainActivityを再作成する必要がある場合、LocalBroadcastManager経由で送信されるメッセージはMainActivityに到達しません。もし私が例えば寝るなら。 MainActivityを再作成する必要があるメッセージを送信する前に、メッセージはMainActivityに到達します。
これは理解できますが、アプリケーションが意図したとおりに動作することを保証するフェールセーフな方法を使用することをお勧めします。
MainActivityがメッセージを受信したことを保証するには、メッセージが受信されたことを確認するためにMainActivityからサービスにメッセージを送信する必要がありますか?
これを処理するより良い方法はありますか?