我正在使用
alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME, 0, DURATION, broadcast);
如何安排一个重复执行的任务,仅在设备未进入睡眠状态时执行。根据我对 AlarmManager 上的 API 的理解,当设备从睡眠状态醒来时,意图将被调用一次。
那么,Android 设备何时处于睡眠状态?为了测试,我将持续时间设置为两分钟,并将设备连接到我的电脑上。现在,我正在观察 logcat,并且每两分钟它就会输出我的调试消息。
我一直认为,关闭屏幕意味着设备开始进入睡眠状态。或者是我在查看调试输出时防止了设备进入睡眠状态吗?我还断开了 USB 连接,并在半小时后查看了日志,即使显示器暗了超过 15 分钟,我也可以看到对我的计时器代码的调用。
我该如何验证命令不再执行的时间以及 AlarmManager 文档中的睡眠状态指的是什么?是否有一种方法可以从 logcat 输出中查看设备何时开始进入睡眠状态?