一,定義該類
/**
* 全局異常捕獲類
*/
public class UnCatchExceptionHandler implements Thread.UncaughtExceptionHandler {
private Context context;//留作備用
private Thread.UncaughtExceptionHandler defaultExceptionHandler;//系統(tǒng)的默認(rèn)異常處理類
private static UnCatchExceptionHandler instance = new UnCatchExceptionHandler();//用戶自定義的異常處理類
private UnCatchExceptionHandler() {
}
public static UnCatchExceptionHandler getInstance(){
return instance;
}
public void init(Context context){
this.context=context.getApplicationContext();
defaultExceptionHandler =Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(this);
}
@Override
public void uncaughtException(Thread t, Throwable e) {
// TODO: 2018/11/8 收集異常信息,上傳服務(wù)器
//如果系統(tǒng)提供了異常處理類冰垄,則交給系統(tǒng)去處理
if (defaultExceptionHandler != null) {
defaultExceptionHandler.uncaughtException(t,e);
}else {
//否則我們自己處理渺尘,自己處理通常是讓app退出
Process.killProcess(Process.myPid());
}
}
}
二篇亭、使用該類
/**
* 我們自己的Application類
*/
public class GenAndApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//使用自定義全局異常捕獲類
UnCatchExceptionHandler.getInstance().init(this);
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者