android - 如何在不等待 FATAL ERROR 的情况下发送 crashlytic NON FATAL ERROR?
问题描述
我做了一个测试来了解 Crashlytics 是如何工作的。我在我的应用程序中制作了 2 个按钮,1 个用于 NON FATAL 报告,1 个用于 FATAL CRASH 报告。代码如下所示:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
nonfatal.setOnClickListener {
val crashlytics = FirebaseCrashlytics.getInstance()
crashlytics.setUserId(Random.nextInt().toString())
crashlytics.recordException(Throwable("AAA"))
}
fatal.setOnClickListener {
throw Exception("This is fatal")
}
}
然后我尝试按 NON FATAL 按钮然后重新启动我的应用程序。我的 crashlytic 控制台没有任何变化。但是当我按下致命按钮时,应用程序崩溃,然后我重新打开应用程序。不久之后,我在 crashlytic 控制台中看到了新记录。包括非致命报告
所以结论是,crashlytics 不会立即发送 NON FATAL。它只是保存它,然后当应用程序崩溃时,它会将 FATAL 和 NON FATAL 发送到 Firebase。
问题:如何强制 Firebase Crashlytics 在不等待应用崩溃的情况下将 NON FATAL 错误发送到 Firebase 控制台?
解决方案
该应用程序不需要崩溃即可发送非致命消息。它只需要您结束应用程序会话,然后重新启动应用程序。
您可以在此处阅读有关该过程的更多信息,
“Crashlytics 在专用后台线程上处理异常,因此对您的应用程序的性能影响很小。为了减少用户的网络流量,Crashlytics 将记录的异常批处理在一起,并在应用程序下次启动时发送。”