设置唤醒锁

您可以设置一个 唤醒锁 以暂时保持设备唤醒。

依赖项

您的应用必须拥有 WAKE_LOCK 权限才能设置唤醒锁。请将该权限添加到您的应用清单中。

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

创建和获取唤醒锁

要获取唤醒锁,请执行以下操作:

  1. 调用 PowerManager.newWakeLock() 以创建唤醒锁。此操作会创建并配置一个 PowerManager.WakeLock 对象,但实际上不会保持设备唤醒。

  2. 当您想要保持设备唤醒时,请调用唤醒锁对象的 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();

关于此代码的要点

当代码创建唤醒锁对象时,它会使用类的名称作为唤醒锁标签的一部分。我们建议将您的包、类或方法名称作为唤醒锁标签的一部分。这样,如果发生错误,更容易在源代码中定位唤醒锁。有关更多信息,请参阅“正确命名唤醒锁”

另请参阅