android - 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 与文档中写的不完全一样吗?
谢谢
解决方案
推荐阅读
- android - 如何在 nativescript 应用程序中捕获 android dispatchKeyEvent?
- python-3.x - 如何在python所有脚本上循环?
- c# - ComboBox.SelectedValue 在表单的构造函数中为 null
- r - 使用 dplyr 删除至少一个 NA 的所有行的 R 函数不起作用
- python - 在 While 循环中创建停止 - Python
- pytorch - 如何从 pytorch 模块获取子模块序列?
- karate - 空手道 - 访问请求的变量就像响应一样
- ios - Flutter iOS 应用程序被拒绝,因为“NSLocationAlwaysUsageDescription”没有目的字符串,但该应用程序不使用位置服务
- html - 使用引导程序创建水平导航栏
- javascript - 如何使堆叠的多个div的宽度动态调整为其中最长的内容?