美文网首页
2018-09-20

2018-09-20

作者: 七月流浪猫 | 来源:发表于2018-09-20 14:46 被阅读0次

Android崩溃分发流程

1.首先调用崩溃线程的dispatchUncaughtException方法进行异常分发处理,如下图,

首先会调用uncaughtExceptionPreHandler.uncaughtException方法进行异常处理,uncaughtExceptionPreHandler系统隐藏字段,无法设置和获取;

然后调用getUncaughtExceptionHandler方法获取我们设置的uncaughtExceptionHandler进行异常分发处理

2.下面来看getUncaughtExceptionHandler()方法,如下图:

首先会获取uncaughtExceptionHandler,也就是Thread.currentThread().setUncaughtExceptionHandler设置的handler

如果uncaughtExceptionHandler为空则调用线程组的uncaughtException进行异常处理

3.下面是线程组的uncaughtException方法:

如果父线程组不为空,则递归调用父线程组的uncaughtException

如果没有重写线程组,则最终都会调用到else条件中,调用到Thread.getDefaultUncaughtExceptionHandler()进行异常处理

相关文章

网友评论

      本文标题:2018-09-20

      本文链接:https://www.haomeiwen.com/subject/qifnnftx.html