android 熄屏 后台运行,Android进程保活/息屏后后台保持定位、网络运行

本文介绍了Android设备熄屏后可能出现的应用程序后台被回收,无法持续定位和网络连接的问题。针对这种情况,提出了三种解决方案:1)利用长连接定时唤醒CPU;2)通过AlarmManager保持CPU唤醒状态;3)建立心跳长链接以保持客户端CPU唤醒。此外,还分享了使用前台服务模拟音乐播放以保活进程的方法,以防止CPU休眠导致的定位和网络中断。
摘要由CSDN通过智能技术生成

Android 设备在黑屏的分钟后可能会发生多种情况:

应用程序切后台后进程资源被系统回收,导致不能持续定位。

解决办法:

长连接定时唤醒cpu(解决黑屏定位、黑屏断网问题)

对于原生Android系统可采用google给出的提升后台应用进程优先级的解决方案来解决,可参考google Android 开发者官网。

对于国内厂商提供的Android系统需要联系到对应的厂商进行系统底层应用白名单授权,才可以保证App进程在后台处于活跃状态。

CPU会处于休眠状态(不同厂商生产的设备CPU休眠时间不尽相同)(包含AP[Application Processor,ARM架构的处理器,用于支撑Android系统运行]和BP[Baseband Processor,运行实时操作系统,通讯协议栈等])。一旦当CPU处于休眠状态,设备将无法正常链接网络,APP的定位请求也将无法正常发送。

解决办法:

通过创建Timer来保持CPU唤醒状态:

Android 的 Timer 类可以用来计划需要执行的任务。但 Timer 的问题是比较消耗手机电量(实现是用 WakeLock 让 CPU 保持唤醒状态);另外一点是:部分厂商将WakeLock也设置了休眠时间,就是说 Timer 很可能和CPU一起处于休眠状态。Timer 类只能解决一小部分问题。

通过AlarmManager保持CPU处于唤醒状态:

AlarmManager 是 Android 系统封装的用于管理 RTC 的模块,RTC (Real Time Clock) 是一个独立的硬件时钟,可以在 CPU 休眠时正常运行,在预设的时间到达时,通过中断唤醒 CPU。用 AlarmManager 来定时执行任务,CPU 可以正常的休眠,需要运行定位时醒来即可。但部分厂商为了使设备更加省电,将AlarmManager也做出了修改,例如5s一次的响应更改为50s或者是几分钟,有些干脆在CPU休眠后彻底停掉了。

通过心跳长链接保持client端CPU处于唤醒状态:(推荐)

最佳唤醒CPU的方法是通过server端与client端的长链接通信。例如每次长链接保持5分钟时间,每30s通信一次,这样可以有效确保CPU处于唤醒状态。

开启前台server(进程保活)

思路:模仿一个音乐类软件,开启一个前台server并循环播放无声音乐

package com.guoshikeji.xi

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值