Android 锁屏后Service服务保活(支持9.0)
最近遇到个问题:
后台Service启动正常启动后,锁屏状态下大概80秒左右Service就被暂停了(并没有被杀死),唤醒屏幕后就继续执行。
解决方法:
Service启动时创建一条通知,与其绑定,这样锁屏或者后台Service都不会被暂停或杀死。
代码如下:
在Service的onCreate中创建NotificationChannel 并且与服务绑定。
private NotificationManager notificationManager;private String notificationId = "serviceid";private String notificationName = "servicename";@Overridepublic void onCreate() {super.onCreate();notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);//创建NotificationChannelif(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){NotificationChannel channel = new NotificationChannel(notificationId, notificationName, NotificationManager.IMPORTANCE_HIGH);notificationManager.createNotificationChannel(channel);}startForeground(1,getNotification());}private Notification getNotification() {Notification.Builder builder = new Notification.Builder(this).setSmallIcon(R.mipmap.log).setContentTitle("title").setContentText("text");if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {builder.setChannelId(notificationId);}Notification notification = builder.build();return notification;}
Android 锁屏后Service服务保活(支持9.0)相关推荐
- Android 锁屏后handler计时失效
目录 问题背景 handler失效的原因 排查了解到Doze机制 锁屏后计时解决方案 问题背景 需要记录用户播放音频的时长,我在一个service中开启handler,每隔一秒用户正在播放,将播放时长 ...
- 锁屏后后台服务停止运行的解决方案
开发了一个跑步记步和运动轨迹的项目,有一天老板说xxx你看下我的跑步轨迹怎么是断断续续的呢,我一看果真是,然后再看下自己的手机,轨迹是连续的,考虑了两秒钟,我们的手机唯一不同的就是系统版本不一样,只好 ...
- android 锁屏后定时器,iOS锁屏或者后台计时器定时解决方法
我们知道,当程序进入后台时,计时器就会暂时停止,当重新进入程序时,计时器又会重新开始,有时候,我们需要在程序进入后台时,计时器依然能够计时,所以,就想到了一种解决方案,利用进入后台和前台的时间差来让计 ...
- Android锁屏状态下service不能正常工作的探究
理想情况下例如音乐播放等service在锁屏状态下都是可以正常播放的. 最近在用android5.0做开发,写了蓝牙4.0的服务和socket的网络请求服务,需求是每隔一段时间自动查询服务器数据,如果 ...
- 【Android】锁屏后应用保活、拉活、双进程守护
最近在使用高德地图实时获取定位时遇到了个问题,锁屏后一段时间(5~10分钟左右)后程序会被系统杀死,为了保活,特研究了下进程保活机制. 0.基本操作和概念 针对root过的手机,可以通过下列命令查看内 ...
- Android 基于高德地图的锁屏后定位和轨迹自动纠偏(离线版)
目录 一.后台如何持续获取定位 1.后台以及锁屏后持续定位异常的原因以及应对方案探索 2.后台持续获取定位失败的应对方案 二.对坐标点进行加工处理 (1).为什么要加工处理 (2).如何加工处理 本文 ...
- Android仿网易云音乐中锁屏后在开锁界面插屏功能
这个功能实现起来应该有多种方式,可以使用WindowManager创建window的方法. 在本文中我们使用开启一个Activity来充当锁屏界面. 实现步骤有以下两步: 一.后台开启一个Servic ...
- Android Service服务保活
基于Android 10.11 实现的Service服务保活 最近公司要实现app程序不被杀死 实现持续定位,在网上看了很多个文章 也看到双进程保活,我忘了在那看到这篇文章了 下面 具体显现 创建 M ...
- mac拓展显示屏睡眠或锁屏后启动黑屏,mac typeC不支持4K 60HZ
问题一.mac拓展显示屏睡眠或锁屏后启动黑屏 解答:参考文章:display - External monitor stays black after "locking" (or ...
最新文章
- linux系统基础入门,虚惊一场
- 在CentOS7上编译GreenPlum5.3.0
- 当代年轻人,都有些不成文的规定?
- 升级 ubuntu_Ubuntu 19.04 已经到期!现有用户必须升级到 Ubuntu 19.10
- Java FilePermission暗含()方法与示例
- matlab weibpdf函数,matlab建模常用函数
- Invalid options in vue.config.js: “baseUrl“ is not allowed
- 命令重置_学个简单命令,一秒重置账户密码
- Mysql : InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!
- 如何遍历JTree的每一个节点
- OpenCV读取网络摄像头视频并保存到本地
- php 小程序获取access_token
- fms 连 mysql_FMS+Thinkphp+Mysql 直播源代码,开源可消耗
- 18岁开始学习编程是否来得及?
- 古老而神秘的龙泉寺,缘何成为互联网圈里的圣地
- 一篇文章带你认识数学建模中的二维插值
- POJ 1838 Banana G++
- 使用 ABAP 代码制作手机能够扫描的二维码(QRCode)试读版
- 假设有一个字类型的数值arry1,试编写程序统计arry1数值及其后若干数值,在字单元中存储时每个数据中含“1”数据位的个数,并将统计结果保存在res1数组中。数据段的代码定义如下: data seg
- 微信小程序wx.onLocationChange的使用,并计算移动距离
热门文章
- 位图与bitblt【位图知识】
- input下拉选择框可以自行输入也可以下拉选择
- 如何找到时序列中的缺失月(missing month)/天(missing day)并补全?尤其针对多个客户或产品的月/天销量 -- 史上最简单方法,只要2行python代码
- Shiro实现session限制登录数量踢人下线
- 乔治亚理工学院计算机专业,乔治亚理工学院计算机专业成功录取
- 【历史上的今天】6 月 15 日:第一个手机病毒;AI 巨匠司马贺诞生;Chromebook 发布
- 职工管理系统--基于C++多态
- 在html中 给表格添加行,在HTML代码中,给表格添加行的标记是。
- 财路网每日原创推送:浅谈:区块连数字身份
- 看懂了再说自己是程序员哈哈