【发布时间】:2018-10-26 23:48:01
【问题描述】:
我在 Android 中设置闹钟时遇到过几次挫折。我尝试设置重复/非重复警报和精确/不精确警报,但没关系,如果警报在过去设置过一段时间,它会在设置后立即执行。早在过去 5 小时内我就已经对此进行了测试,并且仍然会立即执行。
例如:
时间是早上 7 点,我设置了一个闹钟在凌晨 2 点执行。这显然是指下次时钟显示为凌晨 2:00 时,但没关系,闹钟在早上 7 点响起,就在它设置好之后。
下面的代码应该在凌晨 1:00 到凌晨 3:59 之间选择一个随机时间来设置/执行下一个日历日的警报,然后逻辑循环返回以在执行后再次设置自己。警报将永远重复执行。
int randomHour = new Random().nextInt((3 - 1) + 1) + 1;
int randomMinute = new Random().nextInt((59 - 1) + 1) + 1;
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, randomHour);
calendar.set(Calendar.MINUTE, randomMinute);
calendar.set(Calendar.SECOND, 0);
calendar.add(Calendar.DAY_OF_MONTH, 1);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
问题:
Android 过去在什么时候停止执行警报?
有没有办法阻止这种情况?
【问题讨论】:
标签: android alarmmanager android-alarms