設定喚醒鎖定

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

依附元件

應用程式必須具備 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);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
        "MyClassName::MyWakelockTag");
wakeLock.acquire();

這段程式碼的重點

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

另請參閱