設定喚醒鎖定

你可以設定喚醒鎖定,暫時讓裝置保持喚醒狀態。

依附元件

應用程式必須具備 WAKE_LOCK 權限,才能設定喚醒鎖定。 在應用程式資訊清單中新增權限:

<uses-permission android:name="android.permission.WAKE_LOCK" />

建立及取得喚醒鎖定

如要取得喚醒鎖定,請執行下列步驟:

  1. 呼叫 PowerManager.newWakeLock() 建立喚醒鎖定。 這會建立及設定 PowerManager.WakeLock 物件,但不會實際讓裝置保持喚醒狀態。

  2. 如要讓裝置保持喚醒狀態,請呼叫 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);
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag");
wakeLock.acquire();

這組代碼的重點

程式碼建立喚醒鎖定物件時,會使用類別名稱做為喚醒鎖定標記的一部分。建議您在 Wake Lock 標籤中加入封包、類別或方法名稱,這樣一來,如果發生錯誤,就能更輕鬆地在原始碼中找到喚醒鎖定。詳情請參閱「正確命名 Wake Lock」。

另請參閱