我想在我的应用中为每个未捕获的异常发送firebase崩溃报告,但我也希望Android系统显示"应用已停止响应"对话。我该怎么做?我已经有一个发送firebase崩溃报告的UncaughtException处理程序。我现在的问题是让Android处理其余的过程。
答案 0 :(得分:1)
通过存储旧的异常处理程序并将未捕获的异常传递给系统,可以将未捕获的异常委托回系统。
首先创建一个Application
类,如下所示:
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.
}
});
}
}
然后将此类用作清单中的应用程序:
<application
android:name=".Controller"
... />