Вызов Firebase Analytic getInstance() каждый раз против хранения экземпляра как статической переменной в классе Application
Я пытаюсь решить, какой из следующих способов подходит для этого:
- Вызов
FirebaseAnalytics.getInstance(Context)
из всех действий, фрагментов и служб, из которых я регистрирую событие.
или
- Вызов
FirebaseAnalytics.getInstance(Context)
один раз из класса Application
и сохранение его как общедоступной статической переменной. Тогда, оттуда, мне нужно это, я могу назвать `MyAppClass.mFirebaseAnalytics.logEvent() '.
Будет ли какой-либо из вышеперечисленных методов оказывать нежелательное влияние на события, которые автоматически собираются и/или у кого-либо из них есть коэффициент усиления эффективности над другим?
Большое спасибо!
Ответы
Ответ 1
В документации указано:
public static FirebaseAnalytics getInstance (контекст контекста)
Возвращает однопользовательский интерфейс FirebaseAnalytics.
Поэтому я не вижу какой-либо конкретной причины, по которой вы не можете просто иметь экземпляр singleton в своем коде.
При любом подходе не будет заметного повышения эффективности. Если вы изучаете второй вариант, возможно, стоит подумать об этом с помощью инъекции зависимостей и простой оберткой вокруг экземпляра analytics, чтобы повысить тестируемость вашего кода.