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

2024-04-26

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

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

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

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

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

Thanks.


所有子问题的答案

  1. 当没有唤醒锁处于活动状态时,Android 将进入睡眠状态。无论进程和线程正在运行什么,它仍然会休眠。这意味着如果您的线程或其他进程没有激活唤醒锁,您的线程将不会执行,因此不会耗尽任何电池。仅当其他进程获取唤醒锁时,该线程才会被激活。

  2. 同样适用于 Timer.schedule()。假设您编写了一个每秒执行一次但没有任何唤醒锁的计时器,并假设 Android 进入睡眠状态 10 秒。当它在第 11 秒唤醒 p 时,它将识别出您的计时器已过期 10 次,它将简单地丢弃 9 个实例并仅执行一次。如果您想要非常可靠的计时器,您将必须获得唤醒锁或使用 AlarmTimer。

  3. Yes.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android什么时候会在没有唤醒锁的情况下停止CPU? 的相关文章

  • 谷歌地图不显示 Android

    我想在我的应用程序中实现谷歌地图 我添加了谷歌地图活动并创建了一个密钥 我没有更改其他地方的代码中的任何内容 我应该工作 但没有 地图活动 public class MapsActivity extends FragmentActivity
  • 没有这样的属性:类的 useLibrary

    我的项目在Android Studio上使用ndk 所以 build gradle如下 dependencies classpath com android tools build gradle experimental 0 4 0 app
  • Android应用程序中菜单的共享功能

    我问了很多关于我的标题的问题 但到目前为止我还没有得到正确的答案 我需要在我的应用程序中实现androd的菜单功能 即当我们进入Android手机中的画廊时 当我们按菜单时 它会提供很多选项像分享 等 我的问题是我可以在我的应用程序中实现相
  • 检索特定联系人的组

    我想检索联系方式及其所属的组 我得到了列出手机中所有联系人组的代码 Cursor groupC getContentResolver query ContactsContract Groups CONTENT URI null null n
  • 如何处理 Jetpack Compose 中的导航?

    在 Jetpack Compose 中 导航应该如何完成 所有 并不多 示例 包括来自 Google 的官方示例 都使用密封类并加载新屏幕以响应观察当前屏幕的变化 这确实 有点 有效 但不提供导航返回堆栈 并且手机的后退按钮完全不知道 只是
  • 如何安全地更改Android Studio中的项目名称?

    我想更改Android Studio中的项目名称 我在 Stackoverflow 上找到了一些答案 但它对我不起作用 请给我推荐一些合适的解决方案 目前我正在使用 Android Studio 2 3 永远感谢 您需要执行几个步骤 首先转
  • 找不到具有不同构建变量的包名称“....”的匹配客户端

    我想实现推送通知 我添加到项目级别 dependencies classpath com android tools build gradle 2 2 2 classpath com google gms google services 3
  • 华为移动服务的 Android 虚拟设备

    我想将HMS应用到我的应用程序中 然而 购买真正的华为手机并不在我的候选清单上 华为是否为此目的提供 Android 虚拟设备 如果没有 如何测试我的 HMS 实现是否真正有效 是的 华为确实提供了一个 Android 虚拟设备 名为App
  • Recycler查看可见项目的数量

    我正在我的应用程序中创建一个水平 RecyclerView 它必须一次在屏幕上显示 2 个图像 因此每个图像的宽度必须为屏幕的 50 目前它工作正常 但每个项目都会占用屏幕的所有宽度 这是我的代码 mRecyclerView Recycle
  • Firebase 实时数据库 .info/connected 本应为 True 时为 False

    我有一个 Android 服务 它的调用地址为onCreate FirebaseDatabase database FirebaseDatabase getInstance database getReference info connec
  • Android中如何检测程序的终止?

    当 Windows 程序终止时 它会调用事件处理程序 例如 OnClose OnDestroy 和析构函数 Destroy 当我想保存一些 INI 设置时 这些地方就是我要保存的地方 我为所有这些事件编写了事件处理程序 但当我终止程序时它们
  • VideoView中的seekTo

    我在寻找视频时遇到问题 我的应用程序应该从上次停止的位置恢复视频 所以我这样做 videoView seekTo bookmark videoView start 然而 当它播放时 我听到视频开头的声音大约 1 2 秒 只有在该视频寻找到正
  • 如何以编程方式检测 Android 设备是否与 USB OTG 连接

    我正在使用定制 OTG 指纹扫描仪 我想检查 OTG 是否已连接到我的 Android 设备或未在特定的 Android 活动中 public class BootUpReceiver extends BroadcastReceiver p
  • 在不同的活动上显示 OnItemClickListener 的结果

    我使用 OnItemClickListener 从列表视图中选择一个项目 如下所示 listView setTextFilterEnabled true final TextView disp TextView findViewById R
  • 膨胀类 android.support.v7.internal.widget.NativeActionModeAwareLayout 时出错

    如果您以前解决过这个问题 请有人帮助我 我正在尝试使用材料设计制作一些东西 以便应用程序可以运行到 API 10 的低版本 我的代码中没有任何错误 但我不断收到此错误 Android 日志猫 06 01 05 05 37 414 E And
  • 调用 MediaScannerConnection.scanFile 后,MediaStore 内的 Android 缩略图不会刷新

    我正在尝试构建一个类似画廊的应用程序 它将在外部存储上执行以下功能 列出所有包含图像的文件夹 列出所有可供公众使用的图像 不会探测里面的文件Android data 到目前为止 我可以列出所有图像以及包含图像的文件夹 然而 我后来发现这些图
  • Android Studio 3.0 中的 Gradle 构建错误

    您能帮我解决 Android 3 0 中的 Gradle 构建问题吗 我是 Android Studio 的新手 以下是我在 AS 3 0 中的配置 gradle gt wrapper gt gradle wrapper propertie
  • 按钮的大小取决于屏幕分辨率

    I have LinearLayout有 6 个按钮 在 4 7 英寸大小的分辨率下 按钮几乎是完美的 但在分辨率较高的设备上 它们不会占据整个屏幕 而在分辨率较低的设备上 并非所有按钮都可见 您能否解释一下如何使按钮在不同屏幕分辨率的设备
  • 使用 OnContextItemSelected 从 ListView 项目中检索文本

    我有一个带有 经典 上下文菜单的 ListView 其中包含删除和类似选项 由于我要从 SharedPreferences 对象中删除 因此我需要检索键 即设置到 ListView 项目中的文本 我尝试过以下代码 Override publ
  • 只有创建视图层次结构的原始线程才能触摸其视图。在安卓上[重复]

    这个问题在这里已经有答案了 我只是一个初学者 所以请原谅我问一个可能愚蠢的问题 我不明白只有创建视图层次结构的原始线程才能触摸其视图的含义 请有人告诉我为什么会发生此错误以及如何解决此问题 ThankYou 这是我的班级 public cl

随机推荐

  • 以编程方式从 iPhone 拨打 USSD 代码 [重复]

    这个问题在这里已经有答案了 如何拨号USSD以编程方式为iPhone编写代码 我搜索发现iOS 7已经阻止使用USSD出于安全原因 我们可以手动拨打 USSD 代码 但在低于 iOS 7 的 iPhone 中 我们可以手动拨打 USSD 代
  • 使用 Node 和 Heroku 进行负载平衡

    我有一个 Web 应用程序 它接受来自 ios 应用程序的 api 请求 我的网络应用程序托管在 Heroku 上 使用他们的免费 dyno 每个请求能够处理 512 mb 的数据 因为 Node 是一个单线程应用程序 一旦我们开始从 io
  • 升级到 java 8 后无法使用 crashlytics 发布项目

    当我搬到java 8 我在应用程序发布中收到此错误 因为fabric崩溃解决方案 Could not determine the dependencies of task app crashlyticsStoreDeobsRelease g
  • NumPy 追加与 Python 追加

    在 Python 中 我可以附加到一个空数组 例如 gt gt gt a gt gt gt a append 1 2 3 gt gt gt a append 1 2 3 gt gt gt a 1 2 3 1 2 3 我怎样才能在 NumPy
  • Git http - 安全地记住凭据

    通过 HTTP S 连接到远程存储库时 有没有办法安全地让 git 记住我的凭据 我已经尝试过core askpass方法详述于git config http git scm com docs git config让外部脚本提供我的凭据 尽
  • R 中基因列表(使用 ENTREZID)的基因本体 (GO) 分析?

    我对 GO 分析非常陌生 我有点困惑如何对我的基因列表进行分析 我有一个基因列表 n 10 gene list SYMBOL ENTREZID GENENAME 1 AFAP1 60312 actin filament associated
  • Makefiles:从一个目录获取.cpp,并将编译后的.o放在另一个目录中

    我正在开发适用于移动设备 Windows Mobile 6 和 Android 的跨平台 2D 引擎 我的 Windows 版本已基本准备就绪 但我仍需要确保 Android 上也提供相同的功能 我想要的是一个Makefile在项目的根目录
  • 外部化各种 React 组件中的通用函数

    在不同的components在样式或其他方面我使用相同的功能 其中一些函数使用this setState 我想将所有这些函数收集在一个公共位置 因此在重写它们时 我不必在所有组件中重写它们 而只需在一个文件中重写它们 但是 我不知道如何写t
  • Unicode字符串的跨平台迭代(使用ICU计算字素)

    我想迭代每个字符一个 Unicode 字符串 处理每个代理对并将字符序列组合为一个单元 一个字素 Example 文本 由代码点组成 U 0928 U 092E U 0938 U 094D U 0924 U 0947 其中 U 0938 a
  • 如何更改反应导航中的后退按钮路线

    我正在使用反应导航 堆栈导航 我想更改我的标题后退按钮图标路线 Home 订票 我的预订 这些是我项目中的屏幕 现在 当我单击 MyBookings 屏幕中的标题后退按钮时 它应该路由到主屏幕 如果您的 stackNavigator 堆栈配
  • Git 术语:tip 和 HEAD 之间的区别?

    和Git有什么区别HEAD and tip 抱歉 如果在其他地方有人问过这个问题 没有看到任何其他关于此的问题 From 吉特词汇表 https git scm com docs gitglossary html 可能通过git help
  • 使用opencv在灰度图像中绘制彩色矩形

    是否可以使用opencv在灰度图像中绘制彩色矩形 我尝试了几种方法 但整个图像要么变成灰度 要么变成 RGB 您不能获得混合的灰色和彩色图像 你可以看看有没有办法在同一图像opencv C 上同时拥有灰度和RGB像素 https stack
  • 如何为幻灯片中的每个图像添加链接?

    我使用了 为什么这张幻灯片闪烁 中的代码 彼得在网站上给出了您的答案之一 它工作得很好 没有任何闪烁 但我的问题是如何为每个图像添加超链接 我把代码贴出来供大家参考 Script function Edit these Assumes yo
  • jQuery $(window).resize() 在减小窗口高度时不起作用

    我有一个 id 为 main 的 div 我想使用 jQuery 设置它的高度并使其在window resize它的高度是使用函数修改的 但由于某种原因 它仅在增加窗口高度时才能正常工作 而在减小窗口高度时则不起作用 这是JS functi
  • 设置 sendBufferSize() 后,UDP 套接字的消息太长

    我正在尝试发送 UDP 数据报 包含协议缓冲区消息 并收到消息太长的异常 java io IOException Message too long at java net PlainDatagramSocketImpl send Nativ
  • Angular 动态表上的 Jquery 表排序器

    我有一个表 需要使用 Jquery Tablesorter 插件进行排序等 它对于静态表工作得很好 但是当我尝试在 Angular 支持的表上使用时 它不起作用 有谁知道为什么会这样 http plnkr co edit SUjs1h7pr
  • Vaadin 7.0.1 带有 JPAContainer 和 FieldGroup 的组合框

    抱歉 如果这是一个新问题 我有两个 JPAContainer 一个用于 Employee 类 表 一个用于语言类 表 员工可以选择一种语言 我正在尝试创建一个员工编辑表单 其中包含用于语言选择的组合框和用于处理绑定和创建的 FieldGro
  • 获取进程的返回值

    您好 我正在尝试执行以下操作 我有一个可以接受参数 数字 的过程 并返回这些数字的总和 Process P Process Start sPhysicalFilePath Param int result P ExitCode 我从 Exi
  • 如何在不锁定 Excel 文件的情况下打开它?

    我有一个构建 Excel 报告 然后为用户打开它的流程 问题是 如果有人让文件保持打开状态 则该文件将保持锁定状态 并且在第一个人退出 Excel 文件之前 其他人都无法生成报告 有没有办法打开 Excel 文件而不锁定它 使用Proces
  • android什么时候会在没有唤醒锁的情况下停止CPU?

    我知道 android 使用唤醒锁来保持 cpu 运行或屏幕打开 很明显 屏幕唤醒锁可以防止用户活动计时器在用户不活动一段时间后关闭屏幕 但我想知道cpu唤醒锁到底什么时候生效 1 如果我创建一个新线程并在没有任何唤醒锁的情况下在后台继续耗