捕获崩溃异常并重启程序,上传崩溃日志到服务器

App的上线测试不可能囊括所有的错误,以及一些极端的情况可能考虑不到, 所以给App设置崩溃日志反馈是很有必要的,很多第三方都有做到,例如说腾讯的Bugly,友盟的统计等等,都可以实现到,但是如果仅仅是需要向服务器反馈崩溃日志的话,再去集成SDK就得不偿失了,因为我们可以自己去实现。

系统的API中给我们提供了一个可以捕获App异常的方法:

Thread.setDefaultUncaughtExceptionHandler(restartHandler); // 程序崩溃时触发线程  以下用来捕获程序崩溃异常

所以我们就可以使用以上方法来解决反馈崩溃日志的需求,以下是具体代码:

  /**
     * 创建服务用于捕获崩溃异常
     */
    private static Thread.UncaughtExceptionHandler restartHandler = new Thread.UncaughtExceptionHandler() {
        public void uncaughtException(Thread thread, Throwable ex) {
            restartApp(ex);//发生崩溃异常时,重启应用
        }
    };

    /**
     * 重启App
     */
    private static void restartApp(Throwable ex) {
        Intent intent = new Intent(mApplication, HuanYingAct.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mApplication.startActivity(intent);
        ActivityManager.getInstance().popAllActivity();
         TODO: 2017/2/16 这里可以(进行某些操作,例如说上传信息)

        android.os.Process.killProcess(android.os.Process.myPid()); //结束进程之前可以把你程序的注销或者退出代码放在这段代码之前
    }

注意要放在application里。
思路来自: http://www.bkjia.com/Androidjc/1017597.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值