android 捕获 UncaughtExceptionHandler

来源:互联网 发布:小鸡模拟器网络验证 编辑:程序博客网 时间:2024/05/16 02:00

1.写一个捕获类

public class CrashHandler implements UncaughtExceptionHandler {private Thread.UncaughtExceptionHandler mDefaultHandler;public void init(Context ctx) {mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler();Thread.setDefaultUncaughtExceptionHandler(this);}@Overridepublic void uncaughtException(Thread thread, Throwable ex) {// TODO Auto-generated method stubif (!handleException(ex) && mDefaultHandler != null) {mDefaultHandler.uncaughtException(thread, ex);}}private boolean handleException(Throwable ex) {if (ex == null) {return false;}StringBuffer sb = new StringBuffer();Throwable e = ex.getCause() == null ? ex : ex.getCause();StackTraceElement[] stacks = e.getStackTrace();for (int i = 0; i < stacks.length; i++) {sb.append("class: ").append(stacks[i].getClassName()).append("; method: ").append(stacks[i].getMethodName()).append("; line: ").append(stacks[i].getLineNumber()).append(";  Exception: ").append(e.toString() + "\n");}Log.i("uncaughtException","handleException.........:" +sb.toString());return true;} }
2.在onCreate

CrashHandler crashHandler = new CrashHandler();crashHandler.init(this);
3.完事

0 0