在应用程序级别初始化Fabric&Crashlytics是否有不利之处?

时间:2018-09-05 12:54:57

标签: android crashlytics twitter-fabric crashlytics-android

在Crashlytics的官方文档中,它显示了在活动的onCreate方法中初始化Fabric的过程。我想让Crashlytics报告整个应用程序崩溃,将初始化调用置于应用程序级别是否有不利之处?进行此更改是否足以接收整个应用程序中的崩溃报告?

文档示例:

public class MainActivity extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      Fabric.with(this, new Crashlytics());
      setContentView(R.layout.activity_main);
    }
}

我想怎么做

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        Fabric.with(this, new Crashlytics());
        super.onCreate();
    }
}

在我的测试中,这似乎可以达到我的目的,但是我想确保这不是反模式,因为我似乎找不到关于它的任何文档。

2 个答案:

答案 0 :(得分:4)

来自Fabric的Mike。是的,如果可以,您可以并且应该将其移至应用程序的子类onCreate()。对于reference

“如果您有Application子类,则可以将Fabric.with()放在onCreate()方法中。否则,如果您的应用程序中有多个启动活动,则在每个应用程序中添加Fabric.with()启动活动。Fabric只会在您第一次调用start时进行初始化,因此多次调用它不会造成任何问题。”

答案 1 :(得分:1)

应用程序将一直存在,直到您的Android应用程序进程被杀死为止。 您可以使用它来存储可以在各种活动中使用的特定于应用程序的数据(只要您的应用程序处于活动状态)。

由于Fabric在应用程序启动时需要初始化,因此最好在Application类中对其进行初始化。