花了一天时间对如何Android保证Service不被杀死研究了一下,我的手机是Nexus5,系统4.4.2。
杀死一个Service通常有以下几种可能:
1)APP自己杀死(包括调用stopService等方法),以及因为使用bindService后context自己onDestory();
2)第三方软件,比如360手机卫士,腾讯手机管家,猎豹清理大师等;
3)在“设置”——>"应用"——>“正在运行”,找到应用后点击进去,停止Service;
4)“设置”中force close(即强行停止);
除去1)的情况,测试结果如下:
a)第三方软件最多可以杀死APP进程,是不能杀死Service的;
b)当APP进程没有被杀死的时候,是可以通过很多手段在执行3)的方法的时候将Service重启起来的,比如在Service的onDestory方法中调用startService方法;
c)但是当第三方软件杀死APP进程之后,使用的方法都会无效,因为Service的onDestory不会被调用,这种情况下有些应用是很顽强的,能在一定的时间内自动再启起来(一种方法就是使用AlarmManager);
d)force close乃是大杀器,force close之后的APP,不管是支付宝还是微信,都不会再自动启动起来了,Service和APP全部关闭;