2

我在我的服务中使用警报管理器每 15 秒设置一次非唤醒警报以执行特定任务。我不想唤醒手机,因为任务不是时间紧迫的,所以我使用 ELAPSED_REALTIME 标志来设置闹钟。这是代码:

alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 15 * 1000, intentRecurringChecks);

我在日志中注意到的是该任务每 15 秒执行一次。这是否意味着即使屏幕已关闭半小时,手机仍保持清醒状态?有没有一种方法可以确保我的应用程序不是唤醒电话的那个?

我已经搜索过这个主题,但找不到正确的答案。

谢谢你的帮助。

4

1 回答 1

0

首先,您不应该将 AlarmManager 用于此类超时。这在文档中明确提到(阅读粗体部分)。在您的情况下,最好使用Handler基于计时器。这是一个例子:重复一个有时间延迟的任务?.

其次,当设备通过 USB 连接时,它不会进入深度睡眠模式。您应该等一两分钟后断开您的设备。将其附加回来并分析日志。

于 2012-01-11T16:59:08.533 回答