以前常见的进程保活方案有:监听系统广播、定时器、JobScheduler、双进程、提高Service优先级等。
而现在Android版本更新到9.0了,面对高版本,比较行之有效的方法是:
弹出通知栏+双进程+播放无声音乐
双进程:Activity开启要被保护的Service,然后使用AIDL的绑定方式创建2个守护Service。这两个守护Service会互相唤醒,当其中一个失去连接时,会开启另外一个Service。当两个守护Service开始连接或者断开连接的时候,都会去判断我们要保护的Service是否已经被kill掉了,如果是,就重启。
播放音乐:在保护线程内新建一个播放音乐的服务,开启无限播放循环。在onDestory里面对自己重新启动。
弹出通知栏:在保护线程内监听锁屏广播,锁屏后打开一个1像素的Activity,开屏后关闭。