您可以設定喚醒鎖定,讓裝置暫時保持喚醒狀態。
依附元件
應用程式必須具備 WAKE_LOCK
權限,才能設定喚醒鎖定。在應用程式資訊清單中新增權限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
建立及取得喚醒鎖定
如要取得喚醒鎖定,請執行下列操作:
呼叫
PowerManager.newWakeLock()
即可建立喚醒鎖定。這會建立及設定PowerManager.WakeLock
物件,但不會實際讓裝置保持喚醒狀態。如要讓裝置保持喚醒狀態,請呼叫 Wake Lock 物件的
acquire()
方法。
舉例來說,如果應用程式包含使用服務執行某些工作的廣播接收器,您可以使用以下程式碼設定及取得喚醒鎖定:
Kotlin
val wakeLock: PowerManager.WakeLock =
(getSystemService(Context.POWER_SERVICE) as PowerManager).run {
newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply {
acquire()
}
}
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"MyClassName::MyWakelockTag");
wakeLock.acquire();
這段程式碼的重點
程式碼建立喚醒鎖定物件時,會使用類別名稱做為喚醒鎖定標記的一部分。建議您在 Wake Lock 標記中加入封包、類別或方法名稱。這樣一來,如果發生錯誤,您就能更輕鬆地在原始碼中找出喚醒鎖定。詳情請參閱「正確命名 Wake Lock」。