问题描述
|
你好
我正在开发一个使用AlarmManager的应用程序
问题
当我在特定日期和时间使用警报管理器设置待处理的意图时,它的工作正常
但假设我将闹钟时间设置为日期30-05-2011和时间10:00 AM,并且假设当前时间是日期30-05-2011和时间09:50 AM
现在在创建挂起的意图之后,我关闭了设备,并在10:01 AM之后启动了我的设备
那时我希望能收到上午10:00警报的通知,但我没有收到通知
任何想法我如何在打开手机后会收到通知
解决方法
通过AlarmManager,您只能在设备处于睡眠状态时将其唤醒。
为此使用
setRepeating(int类型,long triggerAtTime,长间隔,PendingIntent操作)
或设置(...)
使用RTC_WAKEUP或ELAPSED_REALTIME_WAKEUP
但这不适用于关闭设备的情况。
因此,您应该考虑将警报以及上次应用程序打开的时间存储在数据库中,并计算自上次启动以来错过的警报。
问候,
斯特凡
, 如果您阅读AlarmManager API文档页面:
设备处于睡眠状态时会保留已注册的警报(如果警报在这段时间内关闭,可以选择将其唤醒),但是如果已关闭并重新启动,则警报将被清除。
或者,您可以为意图“ 0”注册一个广播接收器,并在需要执行操作时检查您的SharedPreferences。
有关广播的详细信息,请参见以下问题:尝试在Android上启动时启动服务