概述
Android 6.0(API level 23)开始,当手机没有连接到电源,设备进入Doze模式时,系统将通过延迟最近用户没有使用的应用程序的后台CPU运作及网络活动,让应用程序处于App Standby状态,以此来减少电池消耗。
进入Doze睡眠模式条件:
- 用户不操作设备一段时间
- 屏幕关闭
- 设备未连接电源充电
因此为了提高用户的体验,我们的应用有必要增加该功能,具体的做法就是主动弹出询问请求,让用户去选择是否同意应用加入白名单,从而不会因为手机进入Doze模式而影响我们的应用连不到网络等问题;下面就是做题的做法:
在应用主页面的时候去询问,通过以下三种方式去请求:
//方法一,弹系统对话框请求(推荐)
android.provider.Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
//方法二,跳到相应的设置页面用户自己去设置
android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS
//方法二,请求权限
android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS