我非常好奇如何在应用程序中编写 0 代码,而所需要做的就是使用该库
compile 'com.google.firebase:firebase-crash:9.0.1'
为了让firebase崩溃报告工作。初始化是否总是一次性的,就像应用程序类的 onCreate 总是被调用一次一样?
如果我只想在某个事件之后启用崩溃报告,我该怎么办?
我非常好奇如何在应用程序中编写 0 代码,而所需要做的就是使用该库
compile 'com.google.firebase:firebase-crash:9.0.1'
为了让firebase崩溃报告工作。初始化是否总是一次性的,就像应用程序类的 onCreate 总是被调用一次一样?
如果我只想在某个事件之后启用崩溃报告,我该怎么办?
更新:现在有一篇关于Firebase 组件如何初始化的综合博文。
Firebase 崩溃报告(除了其他 Firebase 组件)在自动包含在您的应用中的 ContentProvider 中进行初始化。ContentProviders 首先被实例化,然后是你的 Application 子类,然后是被调用的任何组件(Activity、Service、BroadcastReciever)。
当您的项目依赖于 Android 库项目(aar 文件)时,它的所有清单条目都会合并到您的应用中,因此您只需声明对 firebase-crash 的依赖即可免费获得此 ContentProvider。
我在 2016 年的 Google I/O 上发表了关于这一切如何运作的演讲。 跳转到 16:22,了解崩溃报告特定内容的开头。
不幸的是,目前没有办法以编程方式启用或禁用崩溃报告,但这很快就会到来。
所以基本上当我使用 Firebase 崩溃报告时,我被迫在ContentProvider
. 因此,我的应用程序有 2 个进程,如果我在其中执行 init,Application.onCreate
那么它会被调用两次 - 每个进程一次。但是其他进程不关心我的初始化代码,所以我不想做两次。所以我可以使用ContentProvider
或检查当前进程名称。或者也许还有其他我想念的东西?