나는 타이머를 원했고 그 장치가 잠자기 상태 일 때 작동하지 않는다는 것을 발견했습니다. AlarmManager
을 사용했지만 작동하지 않습니다. 나는 여전히 도움이되지 않은 서비스를 시도했다. 그런 다음 을 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 분 후에 아무 작업도 수행하지 않습니다.
어떻게 작동시킬 수 있습니까? 아니면 어리석은 잠자기 대신 잘 작동하는 솔루션이 있습니까? ------ update ----- 필자는 필요한 모든 권한을 가지고 있으며 WakeLock이 이미 acquire 함수를 호출 한 후에 개최되었다고 언급 했으므로 Watch에서 볼 수 있습니다.
나는 필요한 모든 권한을 얻습니다. 그래서 나는 혼란 스럽습니다. –