首页 > 解决方案 > setExactAndAllowWhileIdle 几乎完全被触发

问题描述

我在互联网上搜索了答案,但没有找到任何答案。我编写了一个应用程序,其中必须每 17 分钟发送一条短信(每 17 分钟意味着:10:17:00 而不是 10:17:49)因此,我使用了具有 setExactAndAllowWhileIdle 和 AlarmManager.RTC_WAKEUP 的 AlarmManager。

Long whenToFireOff = treeMapInstance.getFirstEntryInTreeMap().getKey();

Calendar alarmCal = Calendar.getInstance();
alarmCal.set(Calendar.HOUR_OF_DAY, treeMapInstance.convertMillisecondsToHour(whenToFireOff));
alarmCal.set(Calendar.MINUTE, treeMapInstance.convertMillisecondsToMinutes(whenToFireOff));

am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, alarmCal.getTimeInMillis(), pi);

但是,它总是在大约 10:17:49 左右触发,下一个预定的警报也在 10:34:49 左右,依此类推。

我正确计算了我的下一个警报。我绝对 100% 确定 :)

setExactAndAllowWhileIdle 与文档中写的不完全一样吗?

谢谢

标签: androidalarmmanager

解决方案


推荐阅读