如果您需要保持设备运行以在设备进入暂停状态之前完成某些工作,可以使用名为唤醒锁的PowerManager
系统服务功能。唤醒锁允许您的应用控制设备的电源状态。
设置唤醒锁
要使用唤醒锁,第一步是将WAKE_LOCK
权限添加到您的应用程序的清单文件中。
<uses-permission android:name="android.permission.WAKE_LOCK" />
如果您的应用包含使用服务来完成某些工作的广播接收器,则以下是直接设置唤醒锁的方法。
Kotlin
val wakeLock: PowerManager.WakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag").apply { acquire() } }
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyApp::MyWakelockTag"); wakeLock.acquire();
释放唤醒锁
要释放唤醒锁,请调用wakelock.release()
。这样做会释放您对 CPU 的请求。当您的应用完成使用唤醒锁后,务必立即释放它,以避免耗尽电池电量。