部分唤醒锁定操作卡住

部分唤醒锁定是 PowerManager API 中的一种机制,开发者可利用它在设备的显示屏关闭后(无论是系统超时还是用户按下电源按钮导致)使 CPU 继续保持运行状态。您的应用会通过调用带有 PARTIAL_WAKE_LOCK 标志的 acquire(),或者使用可获取唤醒锁定的其他 API 来获取部分唤醒锁定。 当应用在后台运行(应用无任何部分对用户可见)时,如果长时间持有部分唤醒锁定,该唤醒锁定就会出现卡住现象。这种情况会导致设备电量消耗过快,因为它会阻止设备进入低功耗状态。部分唤醒锁定仅应在必要时使用,并且在不再需要时立即释放。

如果应用的部分唤醒锁定被卡住,您可以使用本页中的指南来诊断和解决问题。

解决问题

由于唤醒锁定会消耗设备电池电量,因此如果有替代方案,请勿使用唤醒锁定。选择合适的 API 以保持设备唤醒状态文档可帮助您为应用找到最佳解决方案。

如果确实需要使用唤醒锁定,请遵循唤醒锁定最佳实践,确保唤醒锁定不会影响设备效率。尤其需要注意的是,务必确保所有已获取的唤醒锁定均已释放,且释放操作要越快越好。

修复代码中的问题后,您可以使用本地唤醒锁定调试工具验证修复效果。

另请参阅