使用AlarmManager
设置闹钟时,除非您设置了确切的闹钟,否则可能会在指定时间后的某个时间触发闹钟。对这种延迟的范围有什么保证吗?我想成为一个负责任的开发人员,如果延迟不超过一分钟,我就不会使用确切的时间。但我找不到任何有关文档延迟的规范。我很感激资源记录了延迟功能及其时间规范。
答案 0 :(得分:5)
重复间隔[对于定期警报]或从现在到所需交付时间的75%,最小延迟/间隔为10秒,在此期间我们不会推迟警报。
来自API {的AlarmManagerService的Android来源(并且仍与API23相同)
Requested Batch Window 1 Mins -> 1- 1¾ Mins 10 Mins -> 10-17½ Mins 30 Mins -> 30-52½ Mins 1 Hour -> 1- 1¾ Hours
值得注意的是,虽然AlarmManagerService保护窗口长度以确保长度超过半天被视为怀疑(并重写为1小时),但它不会为触发时间提供类似的健全性检查。
因此,您可以轻松地提供基于RTC的值(System.currentTimeMillis())和基于经过时间的模式(ELAPSED_REALTIME),并最终获得将来数千年的警报。