mainidea 2018-04-15 14:01 采纳率: 0%
浏览 2425
已结题

Qt on Android如何让程序后台老后运行

现在在做一个android系统的播放中央控制系统,系统分为三层:上层中控客户端(PC或移动设备上)、中层中控服务器端(Android头盔上)、低层是播放器(Android头盔上)。客户端负责接收用户的输入信息并通过网络通信发送给中控服务器端;中控服务器端负责处理客户端与播放器的通信。
客户端和服务器(无界面)都是用Qt做的,播放器是用Unity做的。现在所有的功能都已经完成了,但服务器端放在Android系统上的后台运行功能,由于我没有Android系统的开发经验不知道如何实现。也在网上找了很久,还是一头雾水,有人可能提供一下具体点的实现方法吗?

  • 写回答

4条回答 默认 最新

  • KosmoSakura 2018-04-18 13:17
    关注

    这个就是那个饱受争议的进程保活问题。//论流氓app的养成233
    给你介绍一个我用过的保活手段:

    1.提高服务优先级:

    通常保活都离不开Server,一般情况下,播放**媒体播放**等服务会被系统授予较高的优先级,
    但是,如果该服务占用资源过高,还是容易被gc掉,所以这里我后台循环播放一段只有几十Kb的音量为0的音频。

    2.创建守护进程

    简单的说,就是创建2个以上的服务,服务之间相互唤醒
    具体做法就是在一个服务的**onDestory()**销毁时,发送一个广播给其他还活着的服务,
    活着的服务收到广播立即唤醒被回收的服务。
    这里注意,守护进程里面尽量少做事,少占内存。

    3.定时唤醒+持续占有(这个事情qq干过)

    • 监听一些系统广播,比如锁屏广播(因为现在很多高版本的Android系统会在系统锁屏时进入打盹模式,后台的很多东西容易被清理)
    • 收到锁屏广播后,创建一个只有1像素的页面。(页面其实是看不见的),提高进程优先级
    • 系统解锁后,移除这个1像素页面。
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?