Android UncaughtExceptionHandler的使用

一,定义该类

/**
 * 全局异常捕获类
 */
public class UnCatchExceptionHandler implements Thread.UncaughtExceptionHandler {


    private Context context;//留作备用

    private Thread.UncaughtExceptionHandler defaultExceptionHandler;//系统的默认异常处理类

    private static UnCatchExceptionHandler instance = new UnCatchExceptionHandler();//用户自定义的异常处理类



    private UnCatchExceptionHandler() {
    }

    public static UnCatchExceptionHandler getInstance(){
        return instance;
    }

    public void  init(Context context){
        this.context=context.getApplicationContext();
        defaultExceptionHandler =Thread.getDefaultUncaughtExceptionHandler();
        Thread.setDefaultUncaughtExceptionHandler(this);
    }

    @Override
    public void uncaughtException(Thread t, Throwable e) {


        // TODO: 2018/11/8 收集异常信息,上传服务器



        //如果系统提供了异常处理类,则交给系统去处理
        if (defaultExceptionHandler != null) {
            defaultExceptionHandler.uncaughtException(t,e);
        }else {
            //否则我们自己处理,自己处理通常是让app退出
            Process.killProcess(Process.myPid());
        }
    }
}

二、使用该类


/**
 * 我们自己的Application类
 */
public class GenAndApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        //使用自定义全局异常捕获类
       UnCatchExceptionHandler.getInstance().init(this);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,490评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,600评论 18 399
  • 面试必背 会舍弃、总结概括——根据我这些年面试和看面试题搜集过来的知识点汇总而来 建议根据我的写的面试应对思路中的...
    luoyangzk阅读 7,153评论 6 173
  • 有声必应,哈哈,每次给儿子留言都会得到简短的回复,虽然有点短,可是都有回复,真好。感赏儿子知道妈妈惦记。感赏儿子独...
    lyy媛媛阅读 221评论 2 2
  • 林奕含,对我而言是一个多陌生的名字啊,可是她的死亡却让我有了奇诡的共鸣。那本自传一般的小说,她在订婚结婚前夕淌着泪...
    唯安Wynonna阅读 220评论 0 0

友情链接更多精彩内容