我知道android使用唤醒锁来保持cpu运行或开启屏幕。很明显,屏幕唤醒锁可以防止用户活动计时器在用户处于非活动状态一段时间后关闭屏幕。
但是我想知道cpu唤醒锁到底什么时候生效。
1.如果我创建了一个新的线程,并且在没有任何唤醒锁的情况下在后台持续消耗cpu,关闭屏幕将不会停止它。它会停止吗?什么时候会停止?
2.使用Timer.schedule()调度的线程怎么办?
3.它引出了另一个问题,如果我在一个服务中保持一个长套接字连接,该连接在socket.read()处被阻塞。当套接字从远程接收任何数据时,我是否必须获取唤醒锁以确保服务将被唤醒?
谢谢。
发布于 2012-02-18 00:37:21
回答您的所有子问题
当没有唤醒锁处于活动状态时,
发布于 2014-12-31 17:26:27
我从与Wake-Lock相关的不同功能中学到的东西,安卓系统永远不会休眠,如果它休眠,你将不会收到短信,即安卓将不会运行操作系统级别的任务,当它进入休眠。
唤醒锁定是一种机制,在这种机制中,任何应用程序都可以请求系统为他保留设备。应用程序可以在后台执行操作,尽管用户没有移动以启动该应用程序。
对于1和2,Akshar已经正确解释了。3.在系统处于休眠状态(只有OS级任务在运行)的情况下,要在应用程序中执行任何操作,首先必须向系统请求唤醒锁,然后才能运行应用程序的操作。完成操作后,您应该释放唤醒锁,以便系统可以转到管理操作系统级任务。
https://stackoverflow.com/questions/8337418
复制相似问题