Android在锁屏下使用WakeLock无效的原因可能是:
任务还没有完成就调用wakelock.release()释放了锁。
例如下面的代码是无效的
while(true){
wakeLock.acquire();
···
wakeLock.release();
Thread.currentThread().sleep(20000);
}
因为WakeLock锁释放了,而任务还没有完成,导致下面的代码在cpu休眠状态下无法执行。
解决办法:只需要把wakeLock.release()这行代码放在sleep()后面即可
while(true){
wakeLock.acquire();
···
Thread.currentThread().sleep(20000);
wakeLock.release();
}