我想在我的应用程序中为每个未捕获的异常发送firebase崩溃报告,但我还想让
Android系统显示“App已停止响应”对话框.我该怎么做?我已经有一个发送firebase崩溃报告的UncaughtException处理程序.我现在的问题是让Android处理剩下的进程. 最佳答案 可以通过存储旧的异常处理程序并将未捕获的异常传递给它来将未捕获的异常委托回系统.
首先创建一个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"
... />