0
我想要一個計時器,我發現它在設備進入睡眠狀態時不起作用。我曾使用AlarmManager
但它不起作用。我也嘗試過仍然沒有幫助的服務。然後我試着WakeLock
與partial_wake_lock
。它在一開始就運行良好,但在沒有更改任何與PowerManager或WakeLock相關的代碼的情況下突然失敗。現在它將工作大約1.5分鐘。爲什麼我的wake_lock不工作?
的代碼是:
private void acquireWakeLock(){
PowerManager pm=(PowerManager)getSystemService(Context.POWER_SERVICE);
wl=pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getCanonicalName());
wl.acquire();
}
private void releaseWakeLock(){
if(wl!=null&&wl.isHeld()){
wl.release();
wl=null;
}
}
正如你可以看到有什麼特別的。基本上我做這樣的:
//private members,including a wakelock,a handler and a runnable, etc
onCreate{
acquireWakeLock();
init();
handler.postdelayed(runnable,time);
}
//some functions...
a function //called in runnable, which does all work before finish() and it calls releaseWakeLock()
我叫在活動的onCreate
採集的功能,並釋放它,當所有的工作已經完成。在調試時,我可以看到鎖已被佔用,但未插入時,1.5分鐘後不會做任何工作。
我該如何使它工作,或者是否有任何解決方案可以很好地工作,而不是這個愚蠢的喚醒鎖? ------更新----- 我已經獲得了我需要的所有權限,並且正如我剛纔提到的那樣,喚醒鎖已經在調用獲取功能後被保留,並且可以在Watch中看到。
我得到了我需要的所有權限,這就是爲什麼我很困惑 –