Android关闭屏幕的同时禁止硬件进入休眠
Screen Off之后,CPU和各种外设(包括WIFI,蓝牙,加速度传感器等等)都停止工作。

WakeLock能够禁止Android硬件进入休眠。进程可以创建各种类型的WakeLock,只要系统中还存在WakeLock,那么系统就不会休眠。

以下是创建并使能Wake Lock的一般性代码:

PowerManager powerManager=(PowerManager)getSystemService(Context.POWER_SERVICE);
WakeLock wakeLock=powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,TAG);
wakeLock.acquire();

释放Wake Lock的代码为:

wakeLock.release();

而创建Wake Lock的代码:

WakeLock wakeLock=powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,TAG);

中,PARTIAL_WAKE_LOCK可以替换成其他的参数,以决定Wake Lock的类型。

wakelock的值和类型
意义
PARTIAL_WAKE_LOCK 保持CPU运转,屏幕和键盘灯有可能是关闭的。
SCREEN_DIM_WAKE_LOCK 保持CPU运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯。
SCREEN_BRIGHT_WAKE_LOCK 保持CPU运转,保持屏幕高亮显示,允许关闭键盘灯。
FULL_WAKE_LOCK 保持CPU运转,保持屏幕高亮显示,键盘灯也保持亮度。
ACQUIRE_CAUSES_WAKEUP 不会唤醒设备,强制屏幕马上高亮显示,键盘灯开启。有一个例外,如果有notification弹出的话,会唤醒设备。
ON_AFTER_RELEASE Wake Lock被释放后,维持屏幕亮度一小段时间,减少Wake Lock循环时的闪烁情况。

如果申请了PARTIAL_WAKE_LOCK,那么即使按Power键,系统也不会进Sleep,如Music播放时。如果申请了其它的WakeLock,

按Power键,系统还是会进Sleep。但如果不领会Android设计者的意图而滥用Wake Lock API,为了自身程序在后台的正常工作而

长时间阻止AP进入休眠状态,就会成为待机电池杀手。
当然,要在AndroidManifest.xml中加权限:

<uses-permission android:name="android.permission.WAKE_LOCK"/>

在某些手机上,当屏幕关闭时,手机虽然还是在通过UDP发送数据,但是数据固定不变了,这说明传感器已经停
止更新数据。原因:由于Android的开放性,任何手机生产商都可以对系统裁剪、自定义。尤其是Android的驱动
程序,谷歌只定义了头文件,规定必须实现的函数,而具体实现完全有厂商决定。有些手机被设计成这样:当电
源键被按下时,驱动程序关闭传感器电源。因此,即使加了WAKELOCK也没用。毕竟,谷歌规定WAKELOCK只是“保
持CPU”运转,并没有规定WakeLock需要保持传感器等外设运转。
一种对部分手机有效的办法,即注册一个Intent.ACTION_SCREEN_OFF消息的事件监听器,并在
Intent.ACTION_SCREEN_OFF监听器中重新注册传感器事件监听器。于是,当屏幕关闭时,程序就会再次注册传感
器事件监听器。
流程:
(1)当屏幕关闭之时,安卓停掉所有传感器的电源;
(2)然后执行Intent.ACTION_SCREEN_OFF的回调函数;
(3)在回调函数中,重新注册传感器监听器。而传感器监听器的注册导致传感器电源又重新开启。

所以综上,正确的做法是注册一个锁屏的广播接收者,当锁屏事件发生时,wakeup cpu and register sensorListener

计步器锁屏后依然工作的原理相关推荐

  1. win10锁屏后默认1分钟进入睡眠状态的解决办法

    问题描述 先说一下睡眠和关闭显示器的区别:睡眠时系统中的一部分程序会停止工作,当你唤醒时会有卡顿感.而关闭显示器的话,其实程序还是在工作的,仅仅是不显示了.从仅关闭显示器的状态唤醒时,体验会比较流畅. ...

  2. Android 基于高德地图的锁屏后定位和轨迹自动纠偏(离线版)

    目录 一.后台如何持续获取定位 1.后台以及锁屏后持续定位异常的原因以及应对方案探索 2.后台持续获取定位失败的应对方案 二.对坐标点进行加工处理 (1).为什么要加工处理 (2).如何加工处理 本文 ...

  3. 手机为什么手机里的计算机没在桌面,为什么安卓手机锁屏后动态桌面就不见了?教你设置软件后台运行!...

    Hi,大家好,我是小雨.小雨给大家分享过许多动态壁纸和手机宠物的软件,比如3D桌面.微信/QQ来电特效.微信透明背景等.但是一些小伙伴反应会出现这样的一个问题:设置好了都能使用,但是锁屏后再打开手机时 ...

  4. iOS 解决苹果手机锁屏后APP退出的问题及app状态

    进入后台程序退出是由iOS系统管理决定的,但APP退出在后台后,只有10秒的持续运行时间,然后暂停.但该APP还在内存中,当出现内存警告,也就是别的APP要运行,而此时内存又不足的情况下,系统会回收停 ...

  5. kali锁屏后无法唤醒_联想电脑锁屏后无法唤醒_win10联想休眠怎么唤醒黑屏图文步骤...

    2020-02-15 12:59:37 大家在使用电脑时为了保护电脑的安全,我们一般会设置密码.那么之后我们开机或者唤醒睡眠的时候,往往会先弹出一个锁屏界面.但有的网友却觉得这样很是麻烦,想要关闭锁屏 ...

  6. 使用AlarmManager实现定时提醒,解决锁屏后无法正常唤醒CPU和屏幕的问题

    之前写过一个demo来实现定时操作,最近帮别人写项目的时候又用到了这个需求,于是coding起来. 首先来说一下我的实现思路:用户选择好闹钟提醒时间后我要启动一个Service,在这个Service里 ...

  7. (已解决)win10+ubuntu18.04双系统,ubuntu锁屏后无法唤醒,重启黑屏闪烁无法进入命令行模式

    事发经过: 台式机双系统 win10 + Ubuntu16.04,大部分时间在Ubuntu16.04下工作.一个不小心(dist-upgrade)升级到了ubuntu18.04后,在一次锁屏后发现再也 ...

  8. 2020-08-23 W7电脑锁屏后,能让电脑处于运行状态吗?

    W7电脑锁屏后,能让电脑处于运行状态吗? https://zhidao.baidu.com/question/509418733.html 如何设置电脑锁屏后自动黑屏,但永不休眠,不睡眠也不会断网. ...

  9. android app应用后台休眠,安卓手机锁屏后程序自动关闭,怎么设置手机app允许锁屏后台运行...

    原标题:安卓手机锁屏后程序自动关闭,怎么设置手机app允许锁屏后台运行 安卓手机锁屏后,很多程序就会自动关闭,实际上,这是安卓手机的一种保护机制.为了使系统能够流畅稳定的运行以及更加省电,它都会在手机 ...

最新文章

  1. System Poles and Zeros 系统零点和极点
  2. 基于MTCNN的人脸自动对齐技术原理及其Tensorflow实现测试
  3. 转:典型开源3D引擎分类比较
  4. Py之wordcloud:python中非常有趣的词云图wordcloud简介、安装、使用方法、案例应用详细攻略
  5. visual stdio里面怎么取消空格补全?
  6. c++类指针赋值表达式必须是可修改的左值_C++进阶教程系列:全面理解C++中的类...
  7. kafka 同步提交 异步_详解Kafka设计架构核心——Kafka副本机制详解
  8. java case 语句_Java switch case 语句
  9. wpsppt放映时间_利用WPS演示制作PPT计时器的两种方法
  10. python中断言方法举例说明_Python中断言Assertion的一些改进方案
  11. PostgreSQL 视图
  12. µC/OS-II Release Notes
  13. 为何日本手机走不出国门?
  14. 送你一招超级快速网站,系统搬家教程,上百G内容的网站快速搬家---快速服务器搬家记录-不同IDC服务商的大文件服务器搬家支招-一颗优雅草科技伊凡
  15. 什么样的程序员才是牛逼的程序员?
  16. Unity实现 场景切换 音乐不断
  17. 实用项目管理之制定项目章程
  18. OSPF高级特性 —— 管理距离(优先级)修改 + 外部路由的metric值的修改
  19. Android多媒体框架(3)—— libstagefright中MediaCodec源码分析
  20. 一款非常牛逼的Java爬虫框架(高度灵活可配置)

热门文章

  1. 计算机网络人工智能论文,浅析计算机网络中人工智能的应用论文
  2. 实现图片“模糊”特效
  3. 易语言游戏基址内存数据CEAA自动汇编脚本注入及CALL的调用
  4. 人工智能在医药行业的应用
  5. 【计算机网络】,java基础教程从入门到精通
  6. 高效的学习方法(几个小技巧)
  7. 学委参加博客之星评选啦
  8. 基于C++的Qt(三)Qt类库概述
  9. 分享 |转录组测序那些事儿
  10. 宏转录组测序数据菌株层面的分析软件总结