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

Hes*_*sam 1 android android-wake-lock android-activity

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

PowerManager powerManager = (PowerManager)getSystemService(Context.POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock");
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Poi*_*ull 5

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

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

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