我在onCreate
方法中获得了唤醒锁,并且可以正常工作(我还设置了权限):
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Wake lock");
wl.acquire();
但是,当我尝试像这样释放它时:
@Override
protected void onDestroy()
{
super.onDestroy();
wl.release();
}
它由于某种原因未发布。这怎么可能 ?有任何想法吗 ?
编辑:我有一个退出按钮,它调用finish(),然后调用onDestroy()。当我按退出按钮,然后让手机进入睡眠状态时,我希望程序无法运行,但可以正常工作,这表明锁未释放
最佳答案
确定发布您的WakeLock
代码是否有效的正确方法是,在发布之前和之后使用adb shell dumpsys power
,以查看您的WakeLock
是否已发布。由于其他应用可以随时请求并获取WakeLocks
,因此其他临时检查(例如,我的应用在屏幕关闭时是否可以运行?)将不可靠。
关于android - Android唤醒锁未释放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14361886/