我正在尝试记录在我的Android应用程序之一中使用全局异常处理程序捕获的异常。总体策略很简单,如果出现异常,应用程序不应终止,如果它们是异常,请捕获该异常,登录到Crashlytics,然后重新启动应用程序。
以下是代码的一部分,该代码处理异常并将其记录到Crashlytics。
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread thread, Throwable e) {
Crashlytics.log(Log.ERROR, "Global Catch Handler", e.toString());
if(Preferences.getInstance().isReachRunning(SyncApplication.this)){
Intent freshIntent = new Intent(SyncApplication.this, AppMainActivity.class);
freshIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
SyncApplication.this.startActivity(freshIntent);
Process.killProcess(Process.myPid());
System.exit(10);
}
}
});
就异常捕获和重新启动应用程序而言,这似乎很好用,但是在Crashlytics仪表板中我看不到任何日志。
我还尝试添加Crashlytics.logException
,但没有任何运气
我认为,由于我正在终止进程,因此Crashlytics会以某种方式错过日志记录部分。任何人都可以指导我完成正确的过程,该过程可以帮助我将错误记录到Crashlytics仪表板吗?