我使用Alarm Manager每5秒触发一次,它运行正常。但问题是手机没有进入睡眠模式,我无法通过报警管理器看到收集数据的差距。 任何人都可以帮我检查手机是否正确进入睡眠状态?
这是我的代码
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
public void startAlarm() {
manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
int interval = 5000;
manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent);
Toast.makeText(this, "Alarm Set", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:1)
使用AlarmManager
即使手机处于睡眠状态且您的活动/服务位于后台,您也可以确保系统唤醒您的应用。
但不意味着您的应用(或任何其他应用)能够强制设备进入Doze mode。
为了验证您的应用是否按预期在Doze中工作,请使用此命令强制设备进入Doze模式:
$ adb shell dumpsys deviceidle force-idle
其他信息
这个方法:
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP...
不会只有在设备退出打盹模式后才会在打盹模式下唤醒设备。
要确保您的应用在Doze中运行,请使用以下命令:
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP...