4
我想爲我的應用程序中的每個未捕獲異常發送firebase崩潰報告,但我也希望Android系統顯示「應用程序已停止響應」對話框。我該如何解決這個問題?我已經有一個發送Firebase崩潰報告的UncaughtException處理程序。我現在的問題是讓Android處理其餘的過程。如何處理未捕獲的異常,然後將處理委託給系統?
我想爲我的應用程序中的每個未捕獲異常發送firebase崩潰報告,但我也希望Android系統顯示「應用程序已停止響應」對話框。我該如何解決這個問題?我已經有一個發送Firebase崩潰報告的UncaughtException處理程序。我現在的問題是讓Android處理其餘的過程。如何處理未捕獲的異常,然後將處理委託給系統?
未捕獲的異常可以通過存儲舊的異常處理程序並將未捕獲的異常傳遞給系統來委託給系統。
首先創建如下面的Application
類:
<application
android:name=".Controller"
... />
:
public class Controller extends Application {
private static Thread.UncaughtExceptionHandler defaultHandler;
@Override
public void onCreate() {
super.onCreate();
if (defaultHandler == null) {
defaultHandler = Thread.getDefaultUncaughtExceptionHandler();
}
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
FirebaseCrash.report(e); //or whatever
defaultHandler.uncaughtException(t, e); //this will show crash dialog.
}
});
}
}
然後在表現爲使用這個類作爲應用