AlarmManager 通知に反応するはずの BroadcastReceiver に問題があります。この件に関するいくつかのスレッドを読みましたが、役立つものは何も見つかりませんでした。私は何かが欠けているに違いない。
次の方法でアラームを設定しました。
// Receiver intent
Intent intent = new Intent(mContext, CalendarAlarmReceiver.class);
intent.putExtra(CalendarAlarmReceiver.SHOW, show);
// Sender
PendingIntent sender = PendingIntent.getBroadcast(mContext, hashRequestCode(show), intent, PendingIntent.FLAG_UPDATE_CURRENT);
mPendingAlarmRequests.put(show.getChannel() + show.getName() + show.getStart().toGMTString(), sender);
// Get AlarmManager
AlarmManager am = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, show.getStart().getTime(), sender);
BroadcastReceiver を拡張する CalendarAlarmReceiver クラスを作成しました。onReceive() メソッドでは、アプリケーションが実行されている場合に正常に機能するステータス バー通知を開始します。ただし、閉じるまで戻るボタンをクリックしてアプリケーションを終了すると、通知は表示されなくなります。
受信者がまったく呼び出されていないかどうかはわかりませんが、通知が機能しないだけなのか、受信者が呼び出されていないのかはわかりません。
マニフェスト ファイルに登録されます。
<receiver android:name=".calendar.CalendarAlarmReceiver" >
</receiver>
これは受信機の故障ではなく、アプリケーションが停止するとアラームがキャンセルされる可能性があることを読みました。その場合、バックグラウンドで常に動作しているサービスにアラームを設定するだけの解決策はありますか?