先看看下面这个函数写的有没有问题? public void wakelockTest(Context context) { PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "awakelock"); wl.acquire(); }
其实是有问题的,定义的变量wl是一个局部变量,在java里,函数调用完了,由于这个局部变量没有被引用了,就会被GC回收,这样休眠锁就被释放了,就起不到锁的效果了。
正确的做法是,将PowerManager.WakeLock wl;定义在函数外面。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35701.html