首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android Crash 汇报反馈

2012-12-23 
Android Crash 报告反馈1,Java中有一个接口,static interface Thread.UncaughtExceptionHandler当Thread

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,发送到服务器!

热点排行