Android用UncaughtExceptionHandler捕获全局异常

来源:互联网 发布:编程软件排行榜2017 编辑:程序博客网 时间:2024/05/29 13:16

我们平时测试app的时候总避免不了崩溃的情况,平时调试需要日志也就算了,但是如果公司人手比较少,测试的时候不能完全测试出bug,等上线了,有崩溃的bug可是头等大问题,之前同事教了一招可以稍微弥补下,今天在这记录一下做个笔记。
为了捕获应用运行时异常并给出友好提示,便可实现UncaughtExceptionHandler接口来处理,网上查了下资料,好多大神写的比较完善的例子,我这里只做一点小功能,就是奔溃的时候退出程序重新进入主界面。

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

我直接在Applocation中实现:

public class MyApplication extends Application implements Thread.UncaughtExceptionHandler {    @Override    public void onCreate() {        super.onCreate();        Thread.setDefaultUncaughtExceptionHandler(this);    }    @Override    public void uncaughtException(Thread t, Throwable e) {        System.exit(0);        Intent intent = new Intent(this, LauncherActivity.class);        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);        startActivity(intent);    }

以上Applocation的代码只能实现崩溃重启app,给人一种错觉是好像自己程序没有崩溃,但是这只是一种弥补的措施吧,整体来说还是养成好的写代码的习惯,避免崩溃,或者多测试让上线的app更完善

阅读全文
0 0