保持Android Service在手機休眠後繼續運行的方法

保持Android Service在手機休眠後繼續運行的方法

 
下面小編就爲大家分享一篇保持Android Service在手機休眠後繼續運行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
 

最近項目中用到了service進行計時,在連接USB的情況下一切正常,但是拔掉USB後發現,手機進入休眠後service停止了工作。最後通過 PowerManager.WakeLock 在屏幕休眠後保持cpu喚醒狀態以使得service繼續運行。

官網提醒:這個API會加劇耗電,所以在非必要情況下儘量不要使用。如果要使用盡量使用最低的等級,並在退出後釋放資源。

wake lock一共有四個等級:

Flag ValueCPUScreenKeyboard
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在手機休眠後繼續運行的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章