【问题标题】:Android AlarmManager setReating and setInexactRepeatingAndroid AlarmManager setReating 和 setInexactRepeating
【发布时间】:2014-03-21 15:24:05
【问题描述】:

我已准备好阅读文档,但我对 setReating 和 setInexactRepeating 有一些疑问。我正在阅读其他一些帖子,但我找不到答案。

文档对两者都有说明:

注意:从 API 19 开始,所有重复警报都是不准确的。

是否意味着这两种方法在 api 19 及更高版本中完全相同?还有不精确有多不精确?如果有延迟,后续报警会有什么影响?

提前致谢。

【问题讨论】:

    标签: android alarmmanager repeatingalarm


    【解决方案1】:

    正如人们可以在official documentation 末尾看到的那样,从 API 19 [和未来版本] 开始,所有对 setRepeating() 的调用都将委托给 setInexactRepeating()。因此,从 KitKat 和即将推出的版本开始,这两种方法的作用完全相同。

    延迟不会影响以下与official documentation相关的警报。

    安排一个具有不精确触发时间要求的重复警报; 例如,每小时重复一次的警报,但不一定在 每个小时的顶部。这些警报比 传统上由 setRepeating(int, long, long, PendingIntent),因为系统可以调整警报的传递 时间使它们同时触发,避免唤醒设备 过度睡眠。

    您的闹钟的第一次触发不会在请求的时间之前,但 在那之后的几乎一个完整的时间间隔内,它可能不会发生。在 此外,而重复警报的总周期将是 请求,任何两次连续触发警报之间的时间 可能会有所不同。如果您的应用需要非常低的抖动,请使用 one-shot 用适当的窗口代替警报;见 setWindow(int, long, long, PendingIntent) 和 setExact(int, long, PendingIntent)。

    从 API 19 开始,所有重复警报都是不准确的。因为这种方法 从 API 3 开始可用,您的应用程序可以安全地调用它 并确保它会在当前和 旧版本的 Android。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多