如果我有一个 IntentService 只更新SharedPreference,是否需要(部分)WakeLock?
我知道 aWakeLock使CPU保持唤醒状态,但什么时候需要它?
如果您需要保持 CPU 运行以便在设备进入睡眠状态之前完成某些工作,您可以使用称为唤醒锁的 PowerManager 系统服务功能。唤醒锁允许您的应用程序控制主机设备的电源状态。
创建和保持唤醒锁会对主机设备的电池寿命产生巨大影响。因此,您应该仅在绝对必要时使用唤醒锁,并尽可能短地保留它们。例如,您永远不需要在活动中使用唤醒锁。
使用唤醒锁的一种合理情况可能是后台服务需要获取唤醒锁以保持 CPU 在屏幕关闭时运行以完成工作。不过,这种做法应该尽量减少,因为它会影响电池寿命。
不幸的是,一些编码不良、恶意或有缺陷的应用程序可能会产生异常数量的不良唤醒锁。其他应用程序需要持续访问互联网才能正常运行 - Facebook 和 Messenger 可能是最受欢迎的代表。它们持续地从网络请求信息(所谓的“轮询”新事件),这会导致后续的唤醒锁。
在其他情况下,对给定应用程序的更新也可能会导致某些问题,通常会导致部分唤醒锁。后者会让您的 CPU 在后台持续发出嗡嗡声,有时您并不知情,并阻止您的设备“进入睡眠状态”。这是异常电池消耗的一个相当重要的先决条件。因此,建议定期监控设备上的唤醒锁,并查看哪些应用程序对我们的系统资源造成严重影响。
阅读更多内容:
什么是唤醒锁,它们如何影响 Android 设备的电池寿命以及如何 Greenify
参考: https: //developer.android.com/training/scheduling/wakelock.html