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

Jas*_*son 3 android android-alarms

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

小智 5

75%的重复间隔[用于定期警报]或从现在到期望的交付时间,最小延迟/间隔为10秒,在此期间我们根本不会推迟警报.

来自用于API19的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),并最终获得将来数千年的警报.