每次调用 Firebase Analytic 的 getInstance() 与将实例存储为应用程序中的静态变量 class

Calling Firebase Analytic's getInstance() every time vs. storing instance as a static variable in Application class

我正在尝试确定以下哪项是执行此操作的正确方法:

  1. 从我从中记录事件的每个 activity、片段和服务调用 FirebaseAnalytics.getInstance(Context)

  1. Application class 调用 FirebaseAnalytics.getInstance(Context) 一次并将其作为 public 静态变量保存。然后,在我需要的任何地方,我都可以调用 `MyAppClass.mFirebaseAnalytics.logEvent()'.

上述任何方法是否会对自动收集的事件产生不良影响and/or其中任何一种方法都比另一种方法更有效率?

非常感谢!

documentation 状态:

public static FirebaseAnalytics getInstance (Context context)

Returns the singleton FirebaseAnalytics interface.

所以我看不出有什么特别的原因不能在代码中只包含一个单例实例。 这两种方法都不会有任何明显的效率提升。如果您正在研究第二个选项,可能值得考虑使用依赖项注入和围绕分析实例的简单包装器来执行此操作,以提高代码的可测试性。