CrashHandler获取应用的crash信息

一个程序不管怎么写,都很难避免不crash,当程序crash后虽然无法让其再继续运行,但是如果能够知道crash的原因,那么就可以修复错误。很多产品在发布以后,用户在使用时发生了crash,这个crash信息很难被捕获,这非常不利于产品的持续发展。

可以通过CrashHandler来监视应用的crash信息,给程序设置一个CrashHandler,这样当程序crash时就会调用CrashHandler的uncaughtException方法。在这个方法中可以获取到crash信息并上传到服务器,通过这种方式服务端就能调控程序的运行状况了,在后续的版本中,开发人员就可以对一些错误进行修复。

crash即崩溃,当崩溃发生时,系统会kill掉正在执行的程序,现象就是闪退或者提示用户程序已经停止运行。在Thread中类中有一个setDefaultUncaughtExceptionHandler(UncaughtExceptinHnadler handler)方法,指的是设置一个系统默认的异常处理器,当崩溃发生时,就会调用handler中的uncaughtException方法,在该方法中就可以获取到异常信息,可以选择把异常信息存储到SD卡中,然后在合适的时机通过网络将crash信息上传到服务器甚至可以在crash发生的时候,弹出一个对话框告诉用户crash了,然后再退出,这样做比较温和一点。

我们所说的CrashHandler其实是实现了UncaughtExceptionHandler的自定义对象,重写了uncaughtException()方法,在该方法中就可以获取到crash的异常信息;

示例代码可见CrashHandler这个Demo;

默认异常处理器是Thread类的静态成员,因此它的作用对象是当前进程的所有线程;

当应用程序崩溃时,CrashHandler会将异常信息以及设备信息写入SD卡,然后将异常信息交给系统处理,系统会帮我们中止程序,如果系统没有默认的异常处理器,那么就自行中止。

转载于:https://my.oschina.net/u/3491256/blog/907684

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值