Android:唤醒锁定:在应用程序暂停时释放锁定吗?

3

我必须使用wakelock(是的,出于明显的原因我不应该这样做,但我被支付了所以我别无选择哈哈)

我的问题非常简单:当我离开应用程序 onPause 或 onStop,应用程序的 wakelock 是否会自动释放?

我想避免用户关闭应用程序时,由于某种奇怪的原因,wakelock 仍然开着。

我的当前系统存在一个问题,即应用程序通过消息处理程序调用释放 wakelock(因为它来自另一个线程),但这发生得“太迟了”,并且应用程序由于不再具有 wakelock 的引用而崩溃。

我可能表述不太清楚,但主要问题在于:

我是否需要担心我的应用程序的 wakelock 影响应用程序生命周期之外的手机。

谢谢

Jason

3个回答

3
我的问题很简单:当我离开应用程序时,无论是在onPause还是onStop状态下,应用程序的唤醒锁是否会自动释放?
不会。这就是为什么你应该在活动中使用android:keepScreenOn而不是WakeLock的原因。
我是否需要担心我的应用程序的唤醒锁会影响到应用程序生命周期之外的手机?
完全如此。除非你释放了那个WakeLock,否则手机将不会进入睡眠状态。

我真正需要做的是在每次onPause方法中释放wake lock吗? - Jason Rogers
1
@Jason Rogers:再次强调,最好使用android:keepScreenOn - CommonsWare

0

唤醒锁定(Wake lock) 绝对会影响您的设备,即使您的应用程序没有在前台运行!

这实际上是获取唤醒锁定的整个目的。

因此,请确保只有在没有其他选择的情况下才使用唤醒锁定,并且如果您的应用程序在后台不需要唤醒锁定,则请确保在 onPause() 方法中释放唤醒锁定!

这将极大地影响您的设备性能和电池寿命!


-3

当您的应用程序不再是焦点时,唤醒锁定被取消,只有当您的应用程序是焦点时,唤醒锁定才会生效。


据我所知,这是不正确的。如果您有一个演示此问题的样例应用程序,请发布链接! - CommonsWare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接