保持Android Service在手机休眠后继续运行的方法
作者:陌小二 发布时间:2022-01-01 20:36:12
标签:Android,Service,手机,休眠
最近项目中用到了service进行计时,在连接USB的情况下一切正常,但是拔掉USB后发现,手机进入休眠后service停止了工作。最后通过 PowerManager.WakeLock 在屏幕休眠后保持cpu唤醒状态以使得service继续运行。
官网提醒:这个API会加剧耗电,所以在非必要情况下尽量不要使用。如果要使用尽量使用最低的等级,并在退出后释放资源。
wake lock一共有四个等级:
Flag Value | CPU | Screen | Keyboard |
---|---|---|---|
PARTIAL_WAKE_LOCK | On* | Off | Off |
SCREEN_DIM_WAKE_LOCK | On | Dim | Off |
SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off |
FULL_WAKE_LOCK | On | Bright | Bright |
因为项目中只需要保持cpu唤醒即可,所以使用 PARTIAL_WAKE_LOCK 即可。
在service中使用方式如下:
...
private PowerManager.WakeLock wakeLock = null;
...
@Override
public void onCreate() {
super.onCreate();
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TimerService.class.getName());
wakeLock.acquire();
}
...
@Override
public void onDestroy() {
if (wakeLock != null) {
wakeLock.release();
wakeLock = null;
}
super.onDestroy();
}
来源:https://blog.csdn.net/u013078044/article/details/64123663


猜你喜欢
- Java是垃圾回收语言的一种,其优点是开发者无需特意管理内存分配,降低了应用由于局部故障(segmentation fault)导致崩溃,同
- 一、前言虽然jdk1.9版本已经问世,但是许多其他的配套设施并不一定支持jdk1.9版本,所以这里仅带领你配置jdk1.8。而jdk1.9的
- HttpClient介绍HttpClient 不是一个浏览器。它是一个客户端的 HTTP 通信实现库。HttpClient的目标是发 送和接
- 1.MediaCodec 是什么MediaCodec类可以访问底层媒体编解码器框架(StageFright 或 OpenMAX),即编解码组
- 1. 注解开发依赖注入1.1 使用@Autowired注解开启自动装配模式@Servicepublic class BookServiceI
- 这两天遇到一个服务假死的问题,具体现象就是服务不再接收任何请求,客户端会抛出Broken Pipe。检查系统状态执行top,发现CPU和内存
- 本文以实例形式讲述了C#应用BindingSource实现数据同步的方法,对C#数据库程序开发来说具有一定的参考借鉴价值。具体实现方法如下:
- 将Object类转换为实体类问题描述在用SpringBoot写controller的时候,需要接受一个map的Object,之后要把Obje
- 简介在Spring 5中,Spring MVC引入了webFlux的概念,webFlux的底层是基于reactor-netty来的,而rea
- 通过上一篇的分析,我们知道了独占模式获取锁有三种方式,分别是不响应线程中断获取,响应线程中断获取,设置超时时间获取。在共享模式下获取锁的方式
- 主要从以下十几个方面对Hibernate做总结,包括Hibernate的检索方式,Hibernate中对象的状态,Hibernate的3种检
- 1.springboot * 处理过滤token,并且返回结果import org.apache.commons.lang3.String
- 现在网上很多应用都是用二维码来分享网址或者其它的信息。尤其在移动领域,二维码更是有很大的应用场景。因为项目的需要,需要在网站中增加一个生成二
- 前言上一篇文章自定义了一个左滑删除的RecyclerView,把view事件分发三个函数dispatchTouchEvent、onInter
- 可以给已有实体类动态的添加字段并返回新的实体对象,不影响原来的实体对象结构。添加依赖<dependency> &n
- 本文实例为大家分享了SpringBoot整合BCrypt实现密码加密的具体代码,供大家参考,具体内容如下一. 首先在pom依赖中加入依赖:&
- 在 Windows 窗体应用程序中显示图片时要使用图片控件 ( PictureBox ),图片的设置方式与背景图片的设置方式相似。图片控件中
- /*最小树形图图模版-朱刘算法模版说明:点标号必须0-(N-1) 必须去除到自身的点(到自身的边的边权赋无限大)*/
- 目录Profile用法resourcesfilters多环境配置解决方案Profile用法我们在application.yml中为jdbc.
- Java InputStream的任意拷贝有时候,当我们需要多次使用到同一个InputStream的时候如何实现InputStream的拷贝