假设有这样一个应用场景,一个服务一直在默默的工作(比如即时地获取服务器的消息),即使在屏幕已经因为长时间无操作而关闭,或者用户按了电源键让屏幕关闭,手机进入休眠状态,他必须依然在工作中。一旦从服务器获取到消息,他能点亮屏幕,然后进行一些处理工作。

1、让服务持续运行而不受手机休眠的影响,要这样处理:

在onCreate里面添加:

pm = (PowerManager)MyApplicationHolder.getContext().getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "myservice");
wl.acquire();  

在onDestroy里添加:

wl.release();  

这样就完成了,这个服务里如果做了一个定时器的话,他会一直运行。

2、让手机从休眠状态唤醒的方法:

KeyguardManager km = (KeyguardManager)MyApplicationHolder.getContext().getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock kl = km.newKeyguardLock("unlock");
kl.disableKeyguard();  PowerManager pm = (PowerManager)MyApplicationHolder.getContext().getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.FULL_WAKE_LOCK, "bright");
wl.acquire();
wl.release();  

注意,使用这个方法屏幕不能设锁。需android.permission.DISABLE_KEYGUARD 权限

android保持服务不休眠(持续运行)以及唤醒屏幕的方法相关推荐

  1. Linux电脑睡眠后黑屏打不开,Win10系统下电脑休眠或睡眠无法唤醒屏幕黑屏打不开的解决方法...

    经常会遇到有用户反映,在使用Windows10系统的过程中,离开电脑一段时间,电脑就会自动进入到睡眠的情况,正常情况下,我们敲击键盘鼠标或者按主机关机键可以唤醒电脑,但是就是有些用户出现了无法唤醒电脑 ...

  2. Android app开发:息屏状态下唤醒屏幕

    方式1:申请wake_lock唤醒屏幕 //权限: <uses-permission android:name="android.permission.WAKE_LOCK" ...

  3. android保持服务不休眠,Android开发保持屏幕常亮和CPU不休眠唤醒状态

    安卓手机 APP 开发,有的时候需要屏幕长时间亮着,也就是不锁屏,这时CPU会一直处于不休眠唤醒状态.下面介绍两种方法. 方法一:通过 PowerManager 实现. 此种方法会在软件安装时用户可以 ...

  4. Android 11.0 framework 增加音量+音量-键唤醒屏幕的功能

    目录 1.概述 2.framework 增加音量+音量-键唤醒屏幕的功能的核心代码

  5. android app 唤醒屏幕

    1,添加权限: <uses-permission android:name="android.permission.WAKE_LOCK" /> 2,代码如下: // 唤 ...

  6. android启动服务的生命周期,android Service启动运行服务 生命周期

    Service Android中的service类似于windows中的service,service一般没有用户操作界面,它运行于系统中不容易被用户发觉, 可以使用它开发如监控之类的程序. 一.步骤 ...

  7. android service 休眠,保持Android Service在手机休眠后继续运行的方法

    最近项目中用到了service进行计时,在连接USB的情况下一切正常,但是拔掉USB后发现,手机进入休眠后service停止了工作.最后通过 PowerManager.WakeLock 在屏幕休眠后保 ...

  8. 三十九、Android原理 不需要关闭后台运行程序

    不用在意剩余内存的大小,其实很多人都是把使用其他系统的习惯带过来来了.android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系.如果你知道java,就能更清楚这机制了.其实和 ...

  9. android系统(63)---Jobscheduler运行机制详解

    android之Jobscheduler运行机制详解 如果想在将来达到一定条件下执行某项任务时,可以在一个实现了JobService的子类的onStartJob方法中执行这项任务,使用JobInfo的 ...

最新文章

  1. 2018年IT市场最大的技术趋势和热点预测
  2. BaseModelOutputWithPoolingAndCrossAttentions的API
  3. 自定义 Layer 属性的动画
  4. html制作滚动游戏,HTML标签marquee实现滚动效果的简单方法(必看)
  5. (转)创业的注意事项
  6. 函数式编程filter、map、reduce
  7. [FlareOn2]very_success [FlareOn3]Challenge1
  8. (zz)Sql Server 2005中的架构(Schema)、用户(User)、角色(Role)和登录(Login)(三)
  9. 转-Kafka【第一篇】Kafka集群搭建
  10. 三百英雄服务器维护2020,酸败英雄梦服维护公告《300英雄梦服》将定于2020年8月3...
  11. BitMap-BitSet(JDK1.8)基本使用入门
  12. qt 运动控制软件 界面_开源库分享----一款跨平台图形界面的百度网盘不限速客户端...
  13. matlab 排列组合
  14. python对文件操作方法是_Python文件操作
  15. ascII码,asc2码表
  16. linux发包密码,linux版本CC发包工具教程
  17. 移动端webUI框架(HTML5手机框架)
  18. 分享几个蛋白质互作网站——String (二)多基因蛋白互作
  19. Azure云centos7安装图形化界面
  20. 全局快门和卷帘快门(Global shutter and Rolling shutter)

热门文章

  1. win8 metro 拖拽重排grid
  2. 博客园 cnblogs博客添加Google Analytics统计
  3. php连接Mysql
  4. 制作安全网站的checklist
  5. 用memcache.php监测memcache的状况
  6. 2.0中获取数据库连接统计数据
  7. Windows客户端C/C++编程规范“建议”——变量和常量
  8. Caffe源码中各种依赖库的作用及简单使用
  9. 网页中插入VLC播放器播放rtsp视频流步骤
  10. 【SVN】在阿里云上创建svn服务器