您可以设置一个 唤醒锁 以暂时保持设备唤醒。
依赖项
您的应用必须拥有 WAKE_LOCK
权限才能设置唤醒锁。请将该权限添加到您的应用清单中。
<uses-permission android:name="android.permission.WAKE_LOCK" />
创建和获取唤醒锁
要获取唤醒锁,请执行以下操作:
调用
PowerManager.newWakeLock()
以创建唤醒锁。此操作会创建并配置一个PowerManager.WakeLock
对象,但实际上不会保持设备唤醒。当您想要保持设备唤醒时,请调用唤醒锁对象的
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();
关于此代码的要点
当代码创建唤醒锁对象时,它会使用类的名称作为唤醒锁标签的一部分。我们建议将您的包、类或方法名称作为唤醒锁标签的一部分。这样,如果发生错误,更容易在源代码中定位唤醒锁。有关更多信息,请参阅“正确命名唤醒锁”。