Как инициализируется отчет о сбое Firebase
Мне очень любопытно, как в приложении написано 0 кодов, и все, что требуется, это использовать библиотеку.
compile 'com.google.firebase:firebase-crash:9.0.1'
для того, чтобы заставить работать аварийную отчетность Firebase. Является ли инициализация всегда единовременной вещью, например, как класс приложения onCreate всегда вызывается только один раз?
Что мне делать, если я хочу включить отчеты о сбоях только после определенного события?
2 ответа
Обновление: теперь в блоге опубликовано подробное сообщение об инициализации компонентов Firebase.
Отчеты о сбоях Firebase (в дополнение к другим компонентам Firebase) инициализируются в ContentProvider, который автоматически включается в ваше приложение. Сначала создаются экземпляры ContentProviders, затем подкласс Application, затем любой вызванный компонент (Activity, Service, BroadcastReciever).
Когда ваш проект зависит от проекта библиотеки Android (файл aar), все его записи манифеста объединяются в ваше приложение, поэтому вы получаете этот ContentProvider бесплатно, просто объявив о зависимости от firebase-crash.
Я дал доклад на Google I/O 2016 о том, как это все работает. Перейдите к 16:22 для начала содержимого, относящегося к отчетам о сбоях.
К сожалению, в настоящее время нет способа программно включить или отключить отчеты о сбоях, но это скоро.
Поэтому, в основном, когда я использую Firebase Crash Reporting, я вынужден выполнять инициализацию в ContentProvider
, Мое приложение имеет 2 процесса из-за этого, и если я делаю init в Application.onCreate
затем он вызывается дважды - один раз для каждого процесса. Но другие процессы не заботятся о моем коде инициализации, поэтому я не хочу делать это дважды. Так что я могу использовать ContentProvider
или проверьте текущее имя процесса. Или, может быть, мне чего-то не хватает?