Doze 模式的定义
Android 6.0引入了Doze模式,用户拔掉电源,在关闭手机屏幕并且不动的一段时间后,系统便会进入Doze模式。
此模式下通过延缓CPU和网络活动减少电量的消耗。阻止APP访问网络,推迟jobs,syncs,标准 alarms.定期系统会退出Doze模式一小段时间让app完成推迟的活动,此段时间称为 ‘maintenance window’(维护时段),在这段时间系统运行此前挂起的syncs,jobs,alarms,并且让app能够访问网络
在每个维护时段结束后,系统会再次进入Doze模式,暂停网络访问并推迟作业、同步和闹铃。 随着时间的推移,系统安排维护时段的次数越来越少,这有助于在设备未连接至充电器的情况下长期处于不活动状态时降低电池消耗。
Doze模式下对 AlarmManager 的影响
AlarmManager提供了一个系统提醒服务,允许你设置自己的程序在未来某一时刻执行任务,说白了就像闹钟,日历一样在指定的时间提醒用户.代码如下:
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent();
intent.setAction("com.test.broadcast");
PendingIntent pendingIntent = PendingInt