Android捕获异常的实现

来源:互联网 发布:js 导航栏点击后变色 编辑:程序博客网 时间:2024/05/22 06:59

为什么要捕获异常

在调试阶段,我们可以用手机连着电脑(或者说模拟器),有问题了直接看日志,定位错误代码的位置,但是android机型成千上万,或者测试没有侧到位,当用户使用时出现了异常,直接crash了,第一用户体验不好,第二,用户不会告诉你怎么出现的bug,你也无法在下一个版本中修改这些问题

捕获异常,要完成的任务

1.任务一、不让用户看到奔溃页面,或者说即使奔溃了,立马重启,让用户感受不到,提升用户的体验
2.收集到错误日志(包含用户的手机信息、app版本等),把他写在文件里、存在sd卡上,发到我们的服务器

代码如何实现

Android提供了一个接口UncaughtExceptionHandler,实现这个接口,重写方法 uncaughtException(Thread thread, Throwable ex)
在这个方法里通过ex得到日志信息,同时得到手机环境信息等,将他们保存在文件中,存到sd卡,上传到服务器即可,最后记得杀死自己,调用这个方法,虚拟机会认为app出现了异常,从而立马重启app,用户感觉到app眼前一闪,立刻复活了

//别忘了手动退出,自已杀死自已的线程            android.os.Process.killProcess(android.os.Process.myPid());

别忘了继承Application类,在这里设置为程序默认的处理器,这样就不会调用系统自己的处理器(出个黑框框,出错了,直接奔溃)

  Thread.setDefaultUncaughtExceptionHandler(mUncaughtExceptionHandler);  

以上是最基本的思路,具体如何捕获异常,请看这里
Android中处理崩溃异常

直接使用第三方捕获异常的工具

但是现在有了现在的第三方工具,可以帮我们做到以上这些,而且做得更好,例如可以捕获NDK异常,漂亮的后台统计等功能,接入也很方便,为何不用呢,请看这里
Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线

0 0
原创粉丝点击