android双进程守护

起因:需求是需要一个服务在后台,尽量能不被杀死,就算杀死了也可以被启动起来。

方式:

       1.提高服务的优先级

       2.采用双服务双进程守护

       具体实现:

                    ServiceA和ServiceB两个服务,一个IService.aidl文件,一个activity 文件,一个util文件

代码如下:

android双进程守护_第1张图片
  activity中同时启动两个服务
android双进程守护_第2张图片
aidl文件中创建两个方法


android双进程守护_第3张图片
handler 中重复检查服务是否被杀死
android双进程守护_第4张图片
启动服务并开启线程
android双进程守护_第5张图片
启动服务方法
android双进程守护_第6张图片

第二个服务和此服务代码相反,互相监听。

util类代码如下


android双进程守护_第7张图片
android双进程守护_第8张图片


android双进程守护_第9张图片
清单文件分别使两个服务处于不同进程

总结:使用两个服务同时处于不同的进程,在清单文件里,互相监听。但是如果人为清理后台运行,并不能重启服务。看了微信,没有登陆的时候,是1个进程1个服务,但是清理后台后仍然会有一个服务在,并能启动起另外的进程,但是不知道是怎么做到的。

参考地址:https://github.com/henryliu703/com.lzg.strongService

你可能感兴趣的:(android双进程守护)