前言
开发一个需要常住后台的App其实是一件非常头疼的事情,不仅要应对国内各大厂商的ROM,还需要应对各类的安全管家…虽然不断的研究各式各样的方法,但是效果并不好,比如任务管理器把App干掉,服务就起不来了…
一般来说:有以下几种可行的方法来使自己的进程不被杀死
- 1、提高Service的优先级:这个,也只能说在系统内存不足需要回收资源的时候,优先级较高,不容易被回收,然并卵…
- 2、提高Service所在进程的优先级:效果不是很明显
- 3、在onDestroy方法里重启service:这个倒还算挺有效的一个方法,但是,直接干掉进程的时候,onDestroy方法都进不来,更别想重启了
- 4、broadcast广播:和第3种一样,没进入onDestroy,就不知道什么时候发广播了,另外,在Android4.4以上,程序完全退出后,就不好接收广播了,需要在发广播的地方特定处理
- 5、放到System/app底下作为系统应用:这个也就是平时玩玩,没多大的实际意义。这个功能需要root,实用性不大
- 6、Service的onStartCommand方法,返回START_STICKY,这个也主要是针对系统资源不足而导致的服务被关闭,还是有一定的道理的。
- 7、开启守护进程监听,如果监听到主进程被杀死就启动主进程。但是这个在5.0以后的系统由于守护进程与主进程是同一进程组,一样的会被杀死。但是我们可以做一下修改,参考一下网上大神的代码.
思想就是:让子进程脱离出来,不要受到主进程的影响