您的位置:首页 > 移动开发

Android中创建杀不死的APP进程(5.0以下)

2015-06-30 10:19 337 查看
所谓的杀不死指的时进程被杀掉后,会自动重启。

即便时在设置里面强行停止后,也能够自动重启。

那么如何自动重启呢?目前想到的有3种方式:

1.使用AlarmManager来定时发intent启动

2.Native层重写对SIGKILL/SIGTERM信号的处理

3.Native层fork一个子进程,来监听APP所在的进程是否有被kill掉

对于第1种方式,java的,就不举列了。

对于第2种测试不太好用,SIGKILL不能被捕获,只是看到某些推送里面是用这种方式,有点奇怪...

sigaction(SIGTERM, &handler, &oldHandle);
	sigaction(SIGKILL, &handle, &oldHandle);


对于第3中,和预期一样,即便被强制停止后也能被重启,核心就是fork一个子进程,在检测到父进程被kill后叫起.....

核心代码:

while(1==1){
		int ppid_error = kill(ppid,0);
		if(ppid_error < 0){
			 system("am start  --user 0  -n com.example.testndk2/com.example.testndk2.MainActivity");
  		        exit(0);
			return;
		}
		sleep(2);
	}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: