通过AlarmManager设置不准确的警报有多少延迟?

时间:2015-12-22 05:33:16

标签: android android-alarms

使用AlarmManager设置闹钟时,除非您设置了确切的闹钟,否则可能会在指定时间后的某个时间触发闹钟。对这种延迟的范围有什么保证吗?我想成为一个负责任的开发人员,如果延迟不超过一分钟,我就不会使用确切的时间。但我找不到任何有关文档延迟的规范。我很感激资源记录了延迟功能及其时间规范。

1 个答案:

答案 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),并最终获得将来数千年的警报。