最近遇到一个问题,是在用CountDownTimer的时候,同时做goToSleep动作的话,CountDownTimer也会相应的暂停了,时间不准确了。
CDT代码如下所示:
Log如下:
但是我的应用明明是有获取了wakeup 锁的,但是还是会有在这种情况发生
最后发现通过查看PowerManager源码,看goToSleep定义如下:
其会强制休眠,并且覆盖所有的wake locks, 所以如果主动调用休眠的话,wake locks 是不起作用的。
通过查看wake locks 的定义不难发现,当主动调用休眠的时候,wake locks 毫无疑问会被释放掉。