听取应用程序唤醒事件/安排唤醒事件

时间:2016-03-18 19:52:31

标签: android events sleep wakeup

我正在尝试安排活动。例如,我希望从现在起1小时内发生一些事情。对于这个我用过的处理程序postdelayed。不幸的是,这并没有像预期的那样奏效。我想原因是android将我的应用程序置于某种睡眠状态,因此定时器会在某个时刻冻结,并从设备重新使用时停止的点开始计数。这会导致事件发生在未知时间,大于预期时间。

现在,我有两种方法可以解决这个问题,我想知道如何实施每一种方法:

  1. 计划在特定时间唤醒设备然后执行该事件。我不知道如何安排醒来(并且做得很有效)。
  2. 我的应用程序唤醒后立即执行该事件,如果执行时间已过(我可以使用日期和时间来验证时间是否已过)。我想念的是如何听取唤醒事件。
  3. 关于android睡眠策略的一般知识:android是否会自动将服务和活动置于睡眠状态?如果是这样,任何消息传递应用程序如何继续收听新消息?

    提前感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

你必须使用Alarms, 警报为您提供了一种在应用程序生命周期之外执行基于时间的操作的方法。

android有4种类型的警报:

  1. ELAPSED_REALTIME—Fires: 基于自设备启动以来的时间量的未决意图,但不会唤醒设备。经过的时间包括设备处于睡眠状态的任何时间。
  2. ELAPSED_REALTIME_WAKEUP—Wakes:启动设备并在设备启动后经过指定的时间后触发待处理的意图。
  3. RTC - 触发:指定时间的待处理意图,但不会唤醒设备。
  4. RTC_WAKEUP—Wakes:启动设备以在指定时间触发待处理的意图。
  5. 阅读此页Alarms