我们知道一个APP至少有个前台进程,有时会有几个进程,最常见的是有一个服务进程,前台交互的这个进程叫前台进程,优先级最高,最后才会被系统杀死;
如果非前台进程发生异常了,前台进程会被杀死吗?整个APP会被杀死吗?
写一个例子来验证吧;
1、在AndroidManifest.xml文件中注册一个service,自定义进程名 "ppp",如下:
<service android:name=".service.MyService"
android:process=":ppp">
</service>
</application>
2、在这个service里面写一个最简单的异常---空指针,如图:
3、找个真机,运行程序,看看会发生什么,2000 years later , 结果真机啥也没发生,没发生crash,but,日志里面记录下了这个异常,如下:
注意:如果定义了全局异常捕获,非前台进程也是可以捕获的;
总结:非前台进程发生异常,前台进程不会crash,整个app也不会crash;
好了,又可以愉快玩啥了。