我在應對AlarmManager通知作出反應的BroadcastReceiver中遇到了一些問題。我已經閱讀了關於這個主題的幾個主題,但沒有找到任何有用的東西。我肯定錯過了什麼。當用戶退出應用程序時,Android 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);
我創建的擴展廣播接收器的CalendarAlarmReceiver類。在onReceive()方法中,我啓動了一個狀態欄通知,如果應用程序正在運行,它可以正常工作。但是,如果我通過單擊後退按鈕退出應用程序直到它關閉,則通知不再顯示。
我不確定接收者是否被調用,只是通知不起作用或者接收者沒有被調用。
它註冊在清單文件:
<receiver android:name=".calendar.CalendarAlarmReceiver" >
</receiver>
,我讀了這未必是接收器的falut而是應用程序停止報警時可能會被取消。如果是這樣的話,解決方案是簡單地將警報設置在一直在後臺工作的服務中?
顯然,即使我沒有引入任何更改,通知也開始出現。這就是我對AlarmManager的理解 - 一旦我設置了它並且接收器被註冊了,我就不需要做什麼了。 – PawelPredki