最近项目中用到了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();

}

以上这篇保持Android Service在手机休眠后继续运行的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持找一找教程网。

android service 休眠,保持Android Service在手机休眠后继续运行的方法相关推荐

  1. android编程 自动裁剪图片,Android编程实现调用相册、相机及拍照后直接裁剪的方法...

    本文实例讲述了Android编程实现调用相册.相机及拍照后直接裁剪的方法.分享给大家供大家参考,具体如下: package com.cvte.health.phone; import java.io. ...

  2. Android使用百度地图定位并显示手机位置后使用前置摄像头“偷拍”

    今天老板让我验证一下技术可行性,记录下来. 需求 :定位手机的位置并在百度地图上显示,得到位置后使用前置摄像头进行抓拍 拿到这个需求后,对于摄像头的使用不太熟悉,于是我先做了定位手机并在百度地图上显示 ...

  3. android 6g 有必要吗,6G内存手机普及后 安卓手机为何还是这么卡?

    6G内存手机普及后 安卓手机为何还是这么卡? 在CES 2017上,首款8GB运行内存(RAM)手机"华硕ZenFone AR"亮相,"溜"遍整个展馆找不到朋友 ...

  4. android 恢复短信 失败,解决安卓手机发送短信失败的方法

    怎么解决手机发送短信失败?虽然现在的QQ和微信它们可以给我们提供即时通讯的服务,但是也避免不了我们需要用到手机上自带的短信功能来完成通讯的这种情况.当我们使用短信功能的时候,却发现发送短信失败,这时候 ...

  5. 小米升级后开机显示无服务器,小米手机升级后无法开机解决方法

    方法1-刷机: 在关机的状态下,进rec中双清(音量上键和开机键按住出来第一个mi画面全部松手,再按住音量加,然后在双清),然后关机音量下键和开机键同时摁住进入fastboot模式(出现米兔修机器人界 ...

  6. Android 轮询最佳实践 Service + AlarmManager+Thread

    为什么80%的码农都做不了架构师?>>>    android中涉及到将服务器中数据变化信息通知用户一般有两种办法,推送和轮询. 消息推送是服务端主动发消息给客户端,因为第一时间知道 ...

  7. android学习十八(Service服务的基本用法)

    定义一个服务 在项目中定义一个服务,新建一个ServiceTest项目,然后在这个项目中新增一个名为MyService的类,并让它继承自Service,完成后的代码如下所示: package com. ...

  8. [转] Android开发之如何保证Service不被杀掉(broadcast+system/app)

    转发:原文链接http://blog.csdn.net/mad1989/article/details/22492519 序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台 ...

  9. Android开发之如何保证Service不被杀掉(broadcast+system/app)

    Android开发之如何保证Service不被杀掉(broadcast+system/app) 序言 最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作 ...

最新文章

  1. c语言输出的时候换行错误,C语言中关于输出n个数后就换行的问题。
  2. linux删除缓存脚本,Linux 设置定时清除buff/cache的脚本
  3. 内存映射文件——Windows核心编程学习手札之十七
  4. R语言应用实战-基于R的C4.5算法和C5.0算法原理解析及应用案例
  5. python排序链表_合并K个排序链表
  6. c语言程序设计 黄建灯,C语言程序设计教学改革
  7. 孙悟空!登上 Nature !
  8. RuoYi-Cloud 部署篇_01(windows环境 mysql +nginx版本)
  9. java 方法重载调用_Java方法的定义以及调用、方法重载、可变参数以及递归
  10. Silverlight中使用MVVM
  11. Nas性能测试工具-vdbench
  12. 万能淘口令生成api,淘口令转化api,淘口令万能版api,淘口令生成器api
  13. 一个周末掌握IT前沿技术之node.js篇一:Node.js与javascript
  14. 【汉字】转【pīnyīn】
  15. 清除浏览器缓存(js、css等)
  16. android瀑布流插件,jQuery瀑布流插件 Masonry
  17. Assuming drive cache: write through 因为硬盘内存不足VM虚拟机开不了机的问题
  18. mysql 计算自然周
  19. 2019年终总结,一朝看尽长安花
  20. 最实用的chrome插件,助高效开发,加快步伐!

热门文章

  1. 一次macOS的升级填坑(macOS Catalina - macOS Monterey)
  2. Gradle for Android-创建build变体
  3. 银行系统(atm机)实现登陆注册存款取款转账
  4. mysql数据库 SELECT COUNT(1) FROM new_comps WHERE deleted = 0 统计数据太慢了二十多秒
  5. BSD学习(BSD系统的历史和目标)
  6. Mac技巧 -- 如何快速定位指定路径
  7. 增加linux的字体
  8. linux系统怎么远程重启,远程重启linux主机的几种方法
  9. 一个微信群机器人PHP,企业微信群机器人301019
  10. 51单片机 (六)独立按键