保持Android Service在手機休眠后繼續(xù)運行的方法
最近項目中用到了service進(jìn)行計時,在連接USB的情況下一切正常,但是拔掉USB后發(fā)現(xiàn),手機進(jìn)入休眠后service停止了工作。最后通過 PowerManager.WakeLock 在屏幕休眠后保持cpu喚醒狀態(tài)以使得service繼續(xù)運行。
官網(wǎng)提醒:這個API會加劇耗電,所以在非必要情況下盡量不要使用。如果要使用盡量使用最低的等級,并在退出后釋放資源。
wake lock一共有四個等級:
Flag Value | CPU | Screen | Keyboard |
---|---|---|---|
PARTIAL_WAKE_LOCK | On* | Off | Off |
SCREEN_DIM_WAKE_LOCK | On | Dim | Off |
SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off |
FULL_WAKE_LOCK | On | Bright | Bright |
因為項目中只需要保持cpu喚醒即可,所以使用 PARTIAL_WAKE_LOCK 即可。
在service中使用方式如下:
... private PowerManager.WakeLock wakeLock = null; ... @Override public void onCreate() { super.onCreate(); PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TimerService.class.getName()); wakeLock.acquire(); } ... @Override public void onDestroy() { if (wakeLock != null) { wakeLock.release(); wakeLock = null; } super.onDestroy(); }
以上這篇保持Android Service在手機休眠后繼續(xù)運行的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android ScrollView實現(xiàn)下拉彈回動畫效果
這篇文章主要為大家詳細(xì)介紹了Android ScrollView實現(xiàn)下拉彈回動畫效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08Android定時器實現(xiàn)定時執(zhí)行、重復(fù)執(zhí)行、定時重復(fù)執(zhí)行、定次數(shù)執(zhí)行的多種方式
今天小編就為大家分享一篇關(guān)于Android定時器實現(xiàn)定時執(zhí)行、重復(fù)執(zhí)行、定時重復(fù)執(zhí)行、定次數(shù)執(zhí)行的多種方式,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12Android SDK Manager國內(nèi)無法更新的解決方案
本文主要介紹Android SDK Manager國內(nèi)無法更新的解決方案,這里提供了解決方法,及簡單說明實現(xiàn)流程,有興趣的小伙伴可以參考下2016-09-09Android ListView滑動刪除操作(SwipeListView)
這篇文章主要為大家詳細(xì)介紹了Android ListView滑動刪除操作,主要是學(xué)習(xí)SwipeListView開源框架。感興趣的小伙伴們可以參考一下2016-08-08