定义MyCrashHandler类,该类实现java.lang.Thread.UncaughtExceptionHandler接口。

import java.io.PrintWriter;import java.io.StringWriter;import java.io.Writer;import java.lang.Thread.UncaughtExceptionHandler;import org.json.JSONException;import org.json.JSONObject;import android.content.Context;import android.os.Build;import android.os.Looper;public class MyCrashHandler implements UncaughtExceptionHandler {    private static MyCrashHandler myCrashHandler;    private Context context;       private MyCrashHandler() {    }    public static synchronized MyCrashHandler getInstance() {        if (myCrashHandler != null) {            return myCrashHandler;        } else {            myCrashHandler = new MyCrashHandler();            return myCrashHandler;        }    }    public void init(Context context) {        this.context = context;    }    public void uncaughtException(Thread thread, final Throwable arg1) {                    new Thread() {                @Override                public void run() {                    super.run();                    Looper.prepare();                    String errorinfo = getErrorInfo(arg1);                   //TODO  处理errorinfo                    Looper.loop();                }            }.start();    //Thread.sleep()是为了等待上面处理errorinfo的线程结束。        try {            Thread.sleep(3000);        } catch (InterruptedException e) {            e.printStackTrace();        }        android.os.Process.killProcess(android.os.Process.myPid());            }       private String getErrorInfo(Throwable arg1) {        Writer writer = new StringWriter();        PrintWriter pw = new PrintWriter(writer);        arg1.printStackTrace(pw);        pw.close();        String error = writer.toString();        return error;    }}
使用MyCrashHandler捕获异常

    MyCrashHandler handler = MyCrashHandler.getInstance();    handler.init(context.getApplicationContext());    Thread.setDefaultUncaughtExceptionHandler(handler);//将handler设置为默认



更多相关文章

  1. Android(安卓)后台线程调用前台线程的几种方法
  2. android 图片处理
  3. Android更新UI的五种方式
  4. android IntentService
  5. Android中的Handler的使用
  6. Android(安卓)创建线程执行任务
  7. Android(安卓)studio 多线程网络文件下载
  8. android 线程之创建一个子线程,并在UI线程中进行交互
  9. android之HandlerThread类的实现

随机推荐

  1. Android4.4 及以下TextView,Button等控件
  2. Android中home键和back键区别实例分析
  3. network: android 使用广播监听网络状态
  4. Android中使用Apache common ftp进行下载
  5. Android简易实战教程--第一话《最简单的
  6. Android手机端调用webservice来获得手机
  7. Android(安卓)某些机型不带tcpdump的解决
  8. Android(安卓)Wear开发 - 数据通讯 - 第
  9. android的native_bridge
  10. Android(安卓)使用HorizontalListView 实