学习笔记之Android利用UncaughtExceptionHandler捕获全局异常

本文介绍了如何使用UncaughtExceptionHandler捕获Android应用的全局异常,以解决上线后可能出现的崩溃问题。通过设置CrashHandler并处理UncaughtException,可以在发生崩溃时收集设备信息和异常日志,便于后期分析和修复。项目源码已上传至GitHub。
摘要由CSDN通过智能技术生成

一、概述

现如今,Android手机越发的普及,手机的品牌与型号五花八门、Android版本的不同,在开发过程中运行良好的app到了发布上线后安装到某款手机上说不定就出现异常崩溃的现象,开发者不可能在所有的设备逐个调试,所以在apk发布上线后,如果出现了崩溃现象,应及时捕获该设备导致崩溃的日志信息,这对于版本维护bug修复帮助极大,那么如何在app出现crash的情况下捕获设备的参数和较详细的异常信息,并将其上传到服务器供开发人员分析与修复。

二、UncaughtExceptionHandler

通常会导致程序崩溃的异常,这些异常不能被捕获到,利用Thread.UncaughtExceptionHandler就可以捕获到这些异常。从名字就可以看出来UncaughtExceptionHandler是针对某个线程而言的,由于在Android编程中,大量使用线程,如果统一处理呢?因为主线程只有一个,我们可以在主线程作处理。

三、原理

既然知道利用UncaughtExceptionHandler类来实现捕获全局异常,那么在Android SDK中进入UncaughtExceptionHandler.class里我们只需要关注以下函数


很显然,在初始化CrashHandler时:

1.获取系统默认的UncaughtException处理器(getDefaultUncaughtExceptionHandler())

2.设置该CrashHandler为程序的默认处理器(setDefaultUncaughtExceptionHandler())

3.当发生Crash时会转入UncaughtException函数来处理相应的业务代码

四、实现过程

关键代码CrashHandler类

public class CrashHandler implements UncaughtExceptionHandler {

    public static final String TAG = &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值