Caused by: java.lang.RuntimeException: WakeLock under-locked TestInitHeartRateActivity
at android.os.PowerManager$WakeLock.release(PowerManager.java:1785)
at android.os.PowerManager$WakeLock.release(PowerManager.java:1747)
at
在释放的时候我直接是 wakeLock.release();引起的bug
解决办法就是在release的时候,进行一下判断,
if (wakeLock.isHeld()){
wakeLock.release();
}
isHeld 方法源码如下,它的意思是如果这个锁屏锁被申请使用但是还没有被释放的情况下就返回true
/**
* Returns true if the wake lock has been acquired but not yet released.
*
* @return True if the wake lock is held.
*/
public boolean isHeld() {
synchronized (mToken) {
return mHeld;
}
}