有关Alarm Manager行为和唤醒锁的问题



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

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

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

我搜索过这个话题,但找不到合适的答案。

谢谢你的帮助。

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

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

最新更新