启动我的应用程序时,会立即触发 AlarmManager,因为时间已经过去了。
我的想法是检查时间表一的实际时间:
if(calendar.before(Calendar.getInstance())); //where calendar is my scheduled calendar
如果上述条件为真,那么:
calendar.add(Calendar.DAY_OF_YEAR, 1);
我认为这会奏效。
然而,混乱发生在第 365 天:
如果预定时间早于实际时间,则按此行加1天:calendar.add(Calendar.DAY_OF_YEAR, 1);
变为1
这不是让它永远成为过去吗?因为没有366?因此,AlarmManager 总是会在过去考虑到它立即触发它?
编辑:
您是否建议我改为:
calendar.add(Calendar.HOUR_OF_DAY, 24);