我已经准备好通过文档,我有一些关于setReating和setInexactRepeating的问题。我正在阅读其他一些帖子,但我找不到答案。
文档说明了两者:
注意:从API 19开始,所有重复警报都不准确。
是否意味着两种方法在api 19及以上版本中完全相同?不精确是多么不准确?如果有任何延迟,对下面的警报有什么影响?
提前感谢。
答案 0 :(得分:1)
从API 19 [和未来版本]的official documentation末尾可以阅读,setRepeating()
的所有来电都将委托给setInexactRepeating()
。因此,从KitKat和即将推出的版本来看,这两种方法完全相同。
延迟不会影响以下报警,参考official documentation。
安排具有不准确触发时间要求的重复警报; 例如,每小时重复一次的警报,但不一定是 每小时的最高点。这些警报比电源更节能 传统上由setRepeating提供的严格重复(int,long, long,PendingIntent),因为系统可以调整警报的传递 时间使它们同时发射,避免唤醒设备 从睡眠中得到的不必要。
您的闹钟的第一次触发不会在请求的时间之前,但是 在此之后几乎整整一段时间内可能不会发生。在 另外,同时重复报警的整个周期将为 请求,任何两次连续发出警报之间的时间 可能会有所不同。如果您的应用需要非常低的抖动,请使用一次性 用适当的窗口报警;见setWindow(int,long, long,PendingIntent)和setExact(int,long,PendingIntent)。
从API 19开始,所有重复警报都不准确。因为这种方法 从API 3开始提供,您的应用程序可以安全地调用它 并确保它在当前和现在都会得到类似的行为 旧版Android。