本頁說明如何釋放應用程式持有的喚醒鎖定。應用程式使用完畢後,請務必立即釋放喚醒鎖定,以免耗盡電池電量。
釋放有效的 Wake Lock
如要釋放作用中的喚醒鎖定,請呼叫其 release()
方法。這樣做會將 CPU 的聲明發布至 CPU。
舉例來說,下列程式碼會取得喚醒鎖定、執行一些工作,然後釋放喚醒鎖定:
Kotlin
@Throws(MyException::class) fun doSomethingAndRelease() { wakeLock.apply { try { acquire(WAKELOCK_TIMEOUT) doTheWork() } finally { release() } } }
Java
void doSomethingAndRelease() throws MyException { try { wakeLock.acquire(WAKELOCK_TIMEOUT); doTheWork(); } finally { wakeLock.release(); } }
請務必在不再需要時立即釋放 Wake Lock。舉例來說,如果您需要使用 Wake Lock 才能完成背景工作,請確保工作結束後就會釋放 Wake Lock。
這組代碼的重點
在這個範例中,方法
doTheWork()
可能會擲回例外狀況。因此,程式碼會在finally
區塊中釋放喚醒鎖定,確保無論是否擲回例外狀況,喚醒鎖定都會釋放。請務必釋放您設定的每個喚醒鎖定,因此您需要檢查每個可能的程式碼路徑,確保喚醒鎖定不會在任何路徑上保持啟用狀態。建議使用
WakeLock.acquire(long timeout)
取得喚醒鎖定,因為這會在指定逾時時間過後自動釋放喚醒鎖定。不過,您仍應在不再需要時明確釋放 Wake Lock,以免 Wake Lock 閒置過久。