2011-01-26 141 views
4

我正在使用wl.acquire()设置唤醒锁。这工作正常。只要我的应用程序存在,我就需要唤醒锁,因此只有在应用程序离开时才能调用release()如何释放唤醒锁?

我需要拨打release()吗?例如在onStop()?我会说不,但我不确定。

感谢,A

+2

我不知道此信息是否可以帮助您,但在每个视图中都有一个名为KeepScreenOn的属性。因此,将其设置为True将使您的应用程序始终醒来......我知道我没有回答您的问题,但我认为您可能需要知道。 – junmats 2011-01-26 09:01:14

回答

4

除了你已经收到的其他有用答案,我刚刚发现了这个有趣的答案,关于如何force screen on,也许你会发现它也很有用,如果你真的不需要唤醒锁。

+0

链接非常有用。 :) – Mudassir 2012-07-06 09:06:37

4

,如果你是指自己将这些2页:

http://developer.android.com/reference/android/os/PowerManager.html

http://developer.android.com/reference/android/os/PowerManager.WakeLock.html#release()

你应该尽快就可以释放唤醒锁:因此如果你的应用正在关闭/暂停释放它!

此外,建议的话,确保您需要一个唤醒锁,当你需要它和很长时间。

在我的情况下,我把一个只用于游戏屏幕,以避免用户屏幕在思考时变黑(因为它是一个opengl应用程序需要几秒钟完全加载),但在其他视图中,我释放它。

相信我,当我说它是一个用户最终结束一个空电池,因为一个应用程序迫使自己保持清醒的烦人。

0

只要我的应用程序生活 您的应用程序有多少活动?你可以在ActivityManager的弹出窗口的onDestroy()中释放它。

是的,你必须释放锁,特别是如果你要保持屏幕亮度,以避免电池消耗。