在我的应用程序中,我想在大约指定的时间触发重复警报以检查某些条件,并在必要时通知用户。
我正在使用以下代码来安排闹钟:
Calendar cal = ...;
...
mAlarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, mAlarmIntent);
我现在注意到(因为我意外地在cal
中有错误的一天),如果cal
是过去的某个日期/时间,则会立即触发警报。
所以我们说它是2016-09-20 18:00:00
,并为2016-09-20 17:00:00
安排闹钟。我马上收到通知(或者在安排闹钟后几秒钟)。如果我为2016-09-20 18:15:00
等未来时间安排闹钟,则不会发生这种情况。
所以我的问题是:
17:00:00
处重复,还是会在18:00:00
重复,因为那是上次触发警报的时间?答案 0 :(得分:2)
Android总能赶上错过的警报吗?
如果设置的时间过去,那么android会尽快触发警报。 check the docs
警报计划每天进行。它会重复吗? 明天17:00:00或将是18:00:00,因为那时是 警报最后被触发了?
下次将按时触发
其他信息:如果使用清除应用数据或强制关闭应用管理器中的应用,则警报不会触发,直到用户再次打开您的应用加上重启也可能导致此问题。