創(chuàng)建定時(shí)任務(wù)解決打盹問(wèn)題,但是會(huì)在后臺(tái)不斷喚醒cpu灼擂,可能對(duì)設(shè)備續(xù)航有一些影響。
Alarm模式(警報(bào)模式):Android手機(jī)長(zhǎng)時(shí)間為操作cpu就會(huì)進(jìn)入睡眠模式人断,這可能導(dǎo)致定時(shí)任務(wù)無(wú)法正常運(yùn)行澜公,Alarm則具有喚醒cpu功能。
Doze模式 (打盹模式):當(dāng)用戶是Android 6.0 以上系統(tǒng)宴咧,該設(shè)備未接通電源拳喻,處于禁止?fàn)顟B(tài)(Android 7.0刪除了這一條件),且屏幕關(guān)閉一段時(shí)間后就會(huì)進(jìn)入Doze模式低千。
Doze模式下受限的功能:
1.網(wǎng)絡(luò)訪問(wèn)被禁止
2.系統(tǒng)忽略喚醒cpu或者屏幕操作
3.系統(tǒng)不再執(zhí)行同步服務(wù)
4.Alarm任務(wù)會(huì)在下次退出時(shí)執(zhí)行
那么我們?cè)趺唇鉀Q這種問(wèn)題呢配阵?
Alarm任務(wù)在Doze模式下正常執(zhí)行的方法:
調(diào)用AlarmManage的setAndAllowWhileIdle()或者setExactndAllowWhileIdle()方法能使定時(shí)任務(wù)在Doze模式下正常執(zhí)行。