很多时候我们在程序运行的时候,一旦出现了一个异常,而我们在程序中没有捕捉到,没有处理,就会弹出一个
对话框,导致程序崩掉,这种情况的用户体验极差,接下来就来说如何解决这个问题,程序中任何漏掉的异常处理我们都可以
捕捉到,就是全局异常捕获,代码如下:
1 package com.qdsj.hxcmjj.util; 2 3 import java.lang.Thread.UncaughtExceptionHandler; 4 5 import android.app.ProgressDialog; 6 import android.content.Context; 7 8 /** 9 * 异常处理类 10 * @author jansin 11 * 12 */ 13 public class CrashHandler implements UncaughtExceptionHandler { 14 public static final String TAG = "CrashHandler"; 15 private static CrashHandler INSTANCE = new CrashHandler(); 16 private Context mContext; 17 ProgressDialog loadingDialog; 18 19 private CrashHandler() { 20 } 21 22 public static CrashHandler getInstance() { 23 return INSTANCE; 24 } 25 26 public void init(Context ctx) { 27 mContext = ctx; 28 Thread.setDefaultUncaughtExceptionHandler(this); 29 30 //初始化异常处理类 31 } 32 33 @Override 34 public void uncaughtException(Thread arg0, Throwable arg1) { 35 36 //捕获到异常后在这里做处理 37 } 38 39 40 }
UncaughtExceptionHandler全局异常捕获类 如代码中所示 有了这个自定义类之后,我们还需要在程序运行之前对异常处理类进行初始化,最好是在application类中对全局异常捕获类进行初始化有了这个类之后,就可以解决我们遗漏的异常捕获导致程序奔溃的问题了。
时间: 2024-10-08 19:22:15