唤醒锁到底能防止什么?

问题描述 投票:0回答:2

唤醒锁定培训文档中写道:

如果您需要保持 CPU 运行以完成某些工作在设备进入睡眠状态之前,您可以使用称为唤醒锁的 PowerManager 系统服务功能。

我的印象是“设备进入睡眠状态之前”指的是打瞌睡模式。然而,SO帖子唤醒和打瞌睡模式的答案指出:

持有 PARTIAL_WAKE_LOCK 不足以阻止 Doze 模式

那么,如果唤醒锁不能阻止打瞌睡模式,那么“保持 CPU 运行以便在设备进入睡眠状态之前完成一些工作”究竟是什么意思?

此外,在瞌睡待机培训文档中写道:

部分豁免的应用程序可以在打瞌睡和应用程序待机期间使用网络并保持部分唤醒锁定。

如果(出于某种原因)“在设备进入睡眠状态之前”确实指的是打瞌睡模式,那么这是否意味着唤醒锁完全没有效果,除非您位于无电池优化的白名单上?

具体来说,我正在讨论 API 31+ 上的部分唤醒锁。

android android-wake-lock android-doze
2个回答
1
投票

“保持 CPU 运行以便在设备进入睡眠状态之前完成一些工作”到底是什么意思?

Android 设备可以关闭 CPU 以减少电池消耗。这通常发生在屏幕关闭后不久。

部分唤醒锁表示“允许屏幕关闭,但保持 CPU 通电”。这用于长时间运行的音频播放(音乐、有声读物、播客等)。

完整的唤醒锁表示“也不允许屏幕关闭”。这用于视频播放器之类的东西,用户的期望是尽管用户输入有限,但屏幕仍会保持打开状态。


0
投票

我知道这篇文章很旧,但我几乎可以肯定您和我有同样的问题。打瞌睡模式仅在设备未充电且静止时发生,因此如果您移动设备,传感器将禁用打瞌睡模式。因此,仅当设备正在充电或设备持续移动时,使用唤醒锁才会阻止设备进入睡眠状态。

© www.soinside.com 2019 - 2024. All rights reserved.