我对应该对 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>
我读到这可能不是接收者的错误,而是应用程序停止时可能会取消警报。如果是这种情况,解决方案是否可以简单地在后台一直运行的服务中设置警报?