在项目中,我们常常会遇到Crash的现象,也就是程序崩溃的时候,这个时候最常看到的就是这个界面

如果你的项目已经发布到市场上了,这样的崩溃对于开发人员是看不到的,所以我们得想方法将崩溃信息发送到服务器,交给我们的程序员查看,Google考虑到这一点,也提供了Thread.UncaughtExceptionHandler接口来实现这一问题

创建Crash异常捕获很简单,主要的步骤有:

  1. 创建BaseApplication继承Application并实现Thread.UncaughtExceptionHandler
  2. 通过Thread.setDefaultUncaughtExceptionHandler(this)设置默认的异常捕获
  3. 最后在manifests中注册创建的BaseApplication

我们可以在uncaughtException()方法中输出异常信息,并让它隔两秒杀死自己进程,这样就不会弹出崩溃的弹窗,让它直接退出程序

最后一步,别忘了在manifests中注册BaseApplication

我们通过运行这个方法,来测试我们的程序

查看Log信息,验证我们的错误信息

完整代码

其实这里就是将上面的简单使用进行封装,在一个类中处理相关的逻辑,主要步骤和上面是一样的

我们为下面的信息保存先提供一些成员变量

提供一个初始化的方法,记得调用Thread.setDefaultUncaughtExceptionHandler(this)这个方法

剩下的就是保存异常信息了,这里发送到服务端采用的是Bmob第三方后端云

在我们的Application中创建该异常捕获

我们同样按照上面的方法来测试这个异常捕获,运行程序,在文件夹中找到我们创建的目录

找到对应文件

查看对应信息

后台数据库的信息

完整代码

CrashHandler源码下载

最新文章

  1. 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信
  2. [Machine Learning & Algorithm] 随机森林(Random Forest)
  3. DataSet、DataTable、Json、List 等各种数据的相互转化
  4. Navigator
  5. eclipse 字体、背景、自动提示设置
  6. DSP using MATLAB 示例 Example3.11
  7. js滚动效果-(up,left)
  8. opencv人脸检测分类器训练小结
  9. 《C和指针》
  10. [每日一题] OCP1z0-047 :2013-07-25 权限――角色与对象权限
  11. css样式书写顺序
  12. git搭建服务器
  13. 前序 中序 后序 遍历 递归 非递归算法 java实现
  14. 读书笔记:深入理解java虚拟机(一)虚拟机的运行时的数据区域
  15. 基于udp简单聊天的系统
  16. Fetch和ajax的比较和区别
  17. Android 工具视频学习笔记_WDS
  18. java 加载数据库驱动
  19. bzoj 4556 [Tjoi2016&Heoi2016]字符串——后缀数组+主席树
  20. Docker Swarm高可用性

热门文章

  1. Jquery动画效果设置大全
  2. lambda表达式-很好---《转载》
  3. 如何给谷歌浏览器安装vue-devtools插件
  4. Product of Polynomials
  5. shell-Startup-Files
  6. 六、Vue-Router:基础路由处理、路由提取成单独文件、路由嵌套、路由传参数、路由高亮、html5的history使用
  7. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-off
  8. ROM与RAM
  9. OSDA - 一个以MIT协议开源的串口调试助手
  10. Sublime和Python中文编码的一些问题