Thread中提供了一个UncaughtExceptionHandler接口能够获取应用的crash信息
该方法设置系统的默认异常处理器,发生crash的时候,系统就会回调UncaughtExceptionHandler的uncaughtException(Thread t, Throwable e)
我们可以在uncaughtException方法中获取到crash信息,也可以选择把异常信息存储到本地以及上传到服务器提供给开发人员分析。
public class CrashHandler implements Thread.UncaughtExceptionHandler {
private static final String TAG = "CrashHandler";
private static final String PATH = Environment.getExternalStorageDirectory() + "/crash/log/";
private Context mContext;
private volatile static CrashHandler mCrashHandler;
private Thread.UncaughtExceptionHandler mDefaultHandler;
private CrashHandler() {
}
public static CrashHandler getInstance() {
if (mCrashHandler == null) {
synchronized (CrashHandler.class) {
if (mCrashHandler == null) {
mCrashHandler = new CrashHandler();
}
}
}
return mCrashHandler;
}