Android实现双进程守护的时候启动多个进程,作过android开发的人应该都知道应用会在系统资源匮乏
的状况下被系统杀死!当后台的应用被系统回收以后,如何从新恢复它呢?android
1.提升优先级shell
这个办法对普通应用而言,应该只是下降了应用被杀死的几率,可是若是真的被系统回收了,
仍是没法让应用自动从新启动!eclipse
2.让service.onStartCommand返回START_STICKY进程
经过实验发现,若是在adb shell当中kill掉进程模拟应用被意外杀死的状况(或者用360手机卫士进行清理操做),
若是服务的onStartCommand返回START_STICKY,在eclipse的进程管理器中会发现过一小会后被杀死
的进程的确又会出如今任务管理器中,貌似这是一个可行的办法。可是若是在系统设置的App管理中
选择强行关闭应用,这时候会发现即便onStartCommand返回了START_STICKY,应用仍是没能从新启动
起来!ip
3.android:persistent="true"
网上还提出了设置这个属性的办法,经过实验发现即便设置了这个属性,应用程序被kill以后仍是不能从新启动起来的!资源
4.让应用成为系统应用
实验发现即便成为系统应用,被杀死以后也不能自动从新启动。可是若是对一个系统应用设置了
persistent="true",状况就不同了。实验代表对一个设置了persistent属性的系统应用,
即便kill掉会马上重启。一个设置了persistent="true"的系统应用,在android中具备core service
优先级,这种优先级的应用对系统的low memory killer是免疫的!开发
文章来源:www.itlanbao.com
get