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