使用CrashHandler的目的
测试人员过来告诉你,“你写的代码崩溃了!”
“what ? ! 我写的代码怎么可能会崩溃?!你复现一下,污蔑我的话信不信自残给你看”
“哎,这次怎么好了,什么情况?”
虽然说这种几率性bug可以晚点解决,但是终归是要解决的,但是复现又有点困难,那怎么办?那就只能使用CrashHandler了
先看如何实现CrashHandler
public class CrashHandler implements Thread.UncaughtExceptionHandler {
private static volatile CrashHandler crashHandler;
private Context context;
private CrashHandler(){
}
public void init(Context context){
this.context = context;
Thread.setDefaultUncaughtExceptionHandler(this);
}
public static CrashHandler getCrashHander(){
if (crashHandler == null){
synchronized (CrashHandler.class){
if (crashHandler == null){
crashHandler = new CrashHandler();
}
}
}
return crashHandler;
}
@Override
public void uncaughtException(Thread t, final Throwable e) {
// 提示信息
new Thread() {