原文地址:https://juejin.cn/post/6904283635856179214
知识点:1 对于子线程的异常,可以通过Thread.setDefaultUncaughtExceptionHandler来拦截,并且子线程的停止不会给用户带来感知。
2 通过在主线程里面发送一个消息,捕获主线程的异常,并在异常发生后继续调用Looper.loop方法,使得主线程继续处理消息。
Handler(Looper.getMainLooper()).post {
while (true) {
//主线程异常拦截
try {
Looper.loop()
} catch (e: Throwable) {
}
}
}
网友评论