UncaughtExceptionHandler可以捕获线程里的崩溃的异常,并且可以获取异常里的输出。
这里在Activity的oncreate里添加
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread thread, Throwable ex) {
//TODO
Writer result = new StringWriter();
PrintWriter printWriter = new PrintWriter(result);
ex.printStackTrace(printWriter);
String stacktrace = result.toString();
Log.d("TEMP1","_____"+ex.toString()+" "+stacktrace);
//Log.d("TEMP1",ex.getLocalizedMessage());
//Toast.makeText(readlog.this, "异常关闭", Toast.LENGTH_SHORT).show();
finish();
}
});
这样内存不足、数组下标越界这样的异常都可以捕获到,也可以发送到服务器上方便查看,而不会弹出系统的崩溃窗体。