How does Firebase crash reporting initialize

ぐ巨炮叔叔 提交于 2019-12-01 01:20:22

问题


I'm extremely curious how there is 0 code written within the application and all that is required is to use the library

compile 'com.google.firebase:firebase-crash:9.0.1'

in order to get firebase crash reporting working. Is the initialization always a one time thing like how the application class' onCreate is always called just once?

What do I do if i want to enable crash reporting only after a certain event?


回答1:


Update: There is now a comprehensive blog post about how Firebase components initialize.

Firebase Crash Reporting (in addition to other Firebase components) initialize in a ContentProvider that's included into your app automatically. ContentProviders are instantiated first, then your Application subclass, then whatever component was invoked (Activity, Service, BroadcastReciever).

When your project depends on an Android Library project (aar file), all of its manifest entries are merged into your app, so you get this ContentProvider for free simply by declaring declaring the dependency on firebase-crash.

I gave a talk at Google I/O 2016 about how this all works. Jump to 16:22 for the beginning of the content specific to crash reporting.

Unfortunately there is currently no way to programmatically enable or disable crash reporting, but that is coming soon.




回答2:


So basically when I'm using Firebase Crash Reporting then I'm forced to do initialization in ContentProvider. My app have 2 processes because of this and if I do init in Application.onCreate then it's called twice - once for each process. But other processes don't care about my init code so I don't want to do it twice. So I can use a ContentProvider or check current process name. Or maybe there is anything else that I'm missing?



来源:https://stackoverflow.com/questions/37738445/how-does-firebase-crash-reporting-initialize

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!