我知道android使用唤醒锁来保持cpu运行或屏幕打开.很明显,屏幕唤醒锁定可防止用户活动计时器在用户不活动一段时间后关闭屏幕.
但我想知道什么时候cpu唤醒锁定才会生效.
1.如果我创建一个新线程并在后台排除CPU而没有任何唤醒锁定,关闭屏幕将不会停止它.它会停止吗?什么时候会停止?
2.使用Timer.schedule()安排的线程怎么样?
3.如果我在服务中保留一个长套接字连接,则会导致另一个问题,该服务在socket.read()处被阻止.我是否必须获取唤醒锁以确保当套接字从远程接收任何数据时将唤醒服务?
谢谢.
回答所有子问题
当没有唤醒锁定处于活动状态时,Android会休眠.无论什么进程和线程正在运行它仍然会睡觉.这意味着如果你的线程或其他进程没有激活唤醒锁定,你的线程将不会执行,因此不会耗尽任何电池.只有当某些其他进程获取唤醒锁时,该线程才会处于活动状态.
同样适用于Timer.schedule().假设您编写了一个每秒执行但没有任何唤醒锁定的计时器,并说安卓进入睡眠状态10秒钟.当它在第11秒唤醒p时,它将识别你的计时器已经过期10次,它将简单地丢弃9个实例并仅执行一次.如果你想要非常可靠的计时器,你必须获得唤醒锁或用户AlarmTimer.
是.
| 归档时间: |
|
| 查看次数: |
2960 次 |
| 最近记录: |