我有一个来自 AlarmManager 的重复警报,每天早上 7:00 触发。根据文档,有一种叫做跳过警报的东西,一旦发现它落后于计划就会执行。
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY,
pendingIntent);
我有一个 BOOT_COMPLETE 接收器,它启动我的警报服务,主要问题是在早上 7:00 之后(因为警报将被执行),设备在早上 9:00 或早上 7:00 之后的任何时间重新启动,第二次触发警报。尽管警报管理器正在做它应该做的事情,但是,这不是我所期望的。
一种可能的解决方案是将 last_executed_day 保存到首选项中,并在触发警报通知之前对其进行检查。
克服这种模式的可能方法是什么?虽然我建议,但我不认为这是标准的 hack,而且我很确定,你们中的大多数人都面临过类似的问题。