我想为我的应用程序中的每个未捕获的异常发送 Firebase 崩溃报告,但我也希望 Android 系统显示“应用程序已停止响应”对话框。我该怎么办?我已经有一个发送 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.
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
然后在清单中使用此类作为应用程序,如下所示:
<application
android:name=".Controller"
... />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
820 次 |
| 最近记录: |