起因:需求是需要一个服务在后台,尽量能不被杀死,就算杀死了也可以被启动起来。
方式:
1.提高服务的优先级
2.采用双服务双进程守护
具体实现:
ServiceA和ServiceB两个服务,一个IService.aidl文件,一个activity 文件,一个util文件
代码如下:
activity中同时启动两个服务 aidl文件中创建两个方法 handler 中重复检查服务是否被杀死 启动服务并开启线程 启动服务方法第二个服务和此服务代码相反,互相监听。
util类代码如下
清单文件分别使两个服务处于不同进程
总结:使用两个服务同时处于不同的进程,在清单文件里,互相监听。但是如果人为清理后台运行,并不能重启服务。看了微信,没有登陆的时候,是1个进程1个服务,但是清理后台后仍然会有一个服务在,并能启动起另外的进程,但是不知道是怎么做到的。
网友评论