2

我在我的服务中使用唤醒锁,因为服务和方便必须一直工作。它工作得很好,但它消耗的电池电量非常快。

实际上我的唤醒锁代码:

    public static PowerManager pm;
    public static PowerManager.WakeLock wl;
    wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
    wl.acquire();

如果服务关闭,我会

    wl.release();

我认为这是一种方式,但不是最好的。还有一个问题——我可以使用“我的标签”做什么。也许你可以帮助我。谢谢。

4

1 回答 1

1

正如医生所说:

使用此 API 将显着影响设备电池寿命。不要获取 PowerManager.WakeLocks,除非你真的需要它们,尽可能使用最低级别,并确保尽快释放它们。

所以,长时间使用 WakeLock 肯定会耗电。没有解决方法!WakeLocks 用于防止手机进入待机模式,它们保持 CPU 开启!正如您所理解的,保持 CPU 开启会导致电池耗尽。

我的建议是仅在需要时获取唤醒锁,然后立即释放!如果您能告诉我们您的目标是什么,我们可以为您提供帮助。

“MyTag”仅用于调试内容。例如,如果您遇到异常,logcat 会将“MyTag”打印为导致该异常的 WakeLock 名称

于 2013-05-17T08:07:43.297 回答