在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();
}
}
在我的测试中,这似乎适用于我的目的,但我想确保这不是一个反模式,因为我似乎无法找到任何关于它的文档。
来自Fabric的Mike来自这里。是的,你可以而且应该把它移到应用程序的子类onCreate()
(如果你有的话)。对于reference:
“如果您有一个Application子类,那么您可以将Fabric.with()
放在onCreate()
方法中。否则,如果您的应用程序中有多个启动活动,则将Fabric.with()
添加到每个启动活动。仅在您第一次调用start时初始化Fabric,所以多次调用它不会引起任何问题。“
应用程序直到你的Android应用程序进程被杀死。您可以使用它来存储可能在各种活动中使用的特定于应用程序的数据(只要您的应用程序处于活动状态)。
由于Fabric需要在应用程序启动时初始化,因此最好在Application类中初始化它。