Android,在应用程序的漏洞中,唤醒锁是否处于活动状态?

时间:2011-09-13 11:10:43

标签: android android-activity android-wake-lock

我的申请中有一些活动。在主要活动中,我定义了唤醒锁:

PowerManager powerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock");

并以onPause()方式发布。我的问题是,它在整个应用程序中是否活跃?或者我是否需要在每次活动中复制/粘贴它?

由于

1 个答案:

答案 0 :(得分:5)

只要获得WakeLock,就会保持很长的唤醒锁定。相关的是WakeLock对象的生命周期。如果不再使用WakeLock并且在仍然具有锁定时它是GC'd,则它在垃圾收集期间释放(在finalize()方法中)。

所以你的唤醒锁在acquire()和release()之间是活动的。您必须确保代码在需要时从所需的活动中调用这些函数。

如果您想在应用程序中全局使用WakeLock,请扩展android.app.Application,在清单中指定它,并在应用程序级别管理唤醒锁。