首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android什么时候会在没有唤醒锁的情况下停止它的cpu?

android什么时候会在没有唤醒锁的情况下停止它的cpu?
EN

Stack Overflow用户
提问于 2011-12-01 14:35:54
回答 2查看 3.2K关注 0票数 9

我知道android使用唤醒锁来保持cpu运行或开启屏幕。很明显,屏幕唤醒锁可以防止用户活动计时器在用户处于非活动状态一段时间后关闭屏幕。

但是我想知道cpu唤醒锁到底什么时候生效。

1.如果我创建了一个新的线程,并且在没有任何唤醒锁的情况下在后台持续消耗cpu,关闭屏幕将不会停止它。它会停止吗?什么时候会停止?

2.使用Timer.schedule()调度的线程怎么办?

3.它引出了另一个问题,如果我在一个服务中保持一个长套接字连接,该连接在socket.read()处被阻塞。当套接字从远程接收任何数据时,我是否必须获取唤醒锁以确保服务将被唤醒?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-18 00:37:21

回答您的所有子问题

当没有唤醒锁处于活动状态时,

  1. Android会休眠。无论哪个进程和线程正在运行,它仍然会休眠。这意味着如果你的线程或其他进程没有激活唤醒锁,你的线程将不会执行,因此不会耗尽任何电池。只有当其他进程获取唤醒锁时,该线程才会被激活。
  2. 同样适用于Timer.schedule()。假设你编写了一个计时器,它每秒执行一次,但没有任何唤醒锁定,假设android进入睡眠状态10秒。当它在第11秒唤醒p时,它将识别你的计时器已经超时10次,它将简单地丢弃the9实例并只执行一次。如果您需要非常可靠的计时器,则必须获取唤醒锁或用户AlarmTimer。
  3. Yes.
票数 8
EN

Stack Overflow用户

发布于 2014-12-31 17:26:27

我从与Wake-Lock相关的不同功能中学到的东西,安卓系统永远不会休眠,如果它休眠,你将不会收到短信,即安卓将不会运行操作系统级别的任务,当它进入休眠。

唤醒锁定是一种机制,在这种机制中,任何应用程序都可以请求系统为他保留设备。应用程序可以在后台执行操作,尽管用户没有移动以启动该应用程序。

对于1和2,Akshar已经正确解释了。3.在系统处于休眠状态(只有OS级任务在运行)的情况下,要在应用程序中执行任何操作,首先必须向系统请求唤醒锁,然后才能运行应用程序的操作。完成操作后,您应该释放唤醒锁,以便系统可以转到管理操作系统级任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8337418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档