Android进阶——Crash异常捕获并发送到服务器

时间:2021-12-06 06:16:44

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

Android进阶——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中创建该异常捕获

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

Android进阶——Crash异常捕获并发送到服务器

找到对应文件

Android进阶——Crash异常捕获并发送到服务器

查看对应信息

Android进阶——Crash异常捕获并发送到服务器

后台数据库的信息

Android进阶——Crash异常捕获并发送到服务器

完整代码

CrashHandler源码下载