读书人

Android Crash 汇报反馈

发布时间: 2012-12-23 11:28:15 作者: rapoo

Android Crash 报告反馈
1,Java中有一个接口,static interface Thread.UncaughtExceptionHandler 当Thread 因未捕获的异常而突然终止时,调用处理程序的接口。

2,Java中有一个方法,static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) 设置当线程由于未捕获到异常而突然终止,并且没有为该线程定义其他处理程序时所调用的默认处理程序。

public class DefaultExceptionHandler implements UncaughtExceptionHandler {     private Context act = null;     public DefaultExceptionHandler(Context act) {        this.act = act;     }     @Override     public void uncaughtException(Thread thread, Throwable ex) {        // 收集异常信息 并且发送到服务器        sendCrashReport(ex);        // 等待半秒        try {            Thread.sleep(500);        } catch (InterruptedException e) {            //        }        // 处理异常        handleException();     }     private void sendCrashReport(Throwable ex) {        StringBuffer exceptionStr = new StringBuffer();        exceptionStr.append(ex.getMessage());        StackTraceElement[] elements = ex.getStackTrace();        for (int i = 0; i < elements.length; i++) {            exceptionStr.append(elements[i].toString());        }        //TODO         //发送收集到的Crash信息到服务器     }     private void handleException() {        //TODO         //这里可以对异常进行处理。        //比如提示用户程序崩溃了。        //比如记录重要的信息,尝试恢复现场。        //或者干脆记录重要的信息后,直接杀死程序。     } } 


3,在主Activity的onCreate(Bundle savedInstanceState)方法中增加如下代码。
Thread.setDefaultUncaughtExceptionHandler(new DefaultExceptionHandler(
this.getApplicationContext())
);

4,发送到服务器!

读书人网 >Android

热点推荐