前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >保持Android Service在手机休眠后继续运行的方法

保持Android Service在手机休眠后继续运行的方法

作者头像
砸漏
发布2020-11-04 12:47:49
2.4K0
发布2020-11-04 12:47:49
举报
文章被收录于专栏:恩蓝脚本

最近项目中用到了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中使用方式如下:

代码语言:javascript
复制
...
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在手机休眠后继续运行的方法就是小编分享给大家的全部内容了,希望能给大家一个参考。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档