1. 概述
使用Qt开发android应用往往会存在这样一个问题:我们的android应用和后台需要时刻保持通信,但是往往我们在切换任务或者息屏,将我们开发的应用变更为后台应用的时候,由于android的电池策略,会将后台的应用关闭掉从而释放资源供其他应用使用.会给应用带来不好的使用体验
2. 解决措施
针对这个问题,网上有很多解决策略,主要是像前台服务、1像素保活、白名单保活、双线程相互监控等等,很多. 我大概试了一下,高版本的安卓目前比较推荐的方法的是采用白名单的方式,其他方式多是流氓软件的做法,咱守法公民,不干那事~
3. Android实现白名单保活
其实并不复杂,实际上不通过代码的方式在android上设置即可,不同的厂商可能略有不同,这里以小米平板SE为例,实际只需要打开两个开关即可
1> 省点策略改为无限制
设置->应用设置->应用管理菜单下,将省电策略从智能限制改为无限制即可
2> 开启任务后台锁定
桌面上找到平板管家图标,点击右上角设置按钮,选择优化加速,任务锁定
4. Qt如何通过代码实现上述设置
1> 省电策略的设置主要是通过调用jni接口弹出设置窗口让用户手动去设置
public boolean isIgnoringBatteryOptimizations()
{
boolean isIgnoring = false;
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
if (powerManager != null)