是否可以延迟初始化Fabric Kit?例如,现在我做:
Fabric.with(this, crashlytics, twitterCore, tweetUi); // 500ms
我只想初始化Crashlytics(没有Twitter内容),如下所示,因为它的速度快了10倍,而且我不需要立即使用Twitter的内容
Fabric.with(this, crashlytics); // 50ms
稍后,当用户访问需要TwitterCore和TweetUi的 Activity 时,我想在使用它们之前将它们动态添加到Fabric中。
这可能吗 ?
编辑:我设法通过反射来完成它,这显然不理想,但是暂时可行。我仍在寻找适当的解决方案。这是我的操作方式:
try {
final Fabric newFabric = (new Fabric.Builder(context)).kits(crashlytics, twitterCore, tweetUi).build();
final Method method = Fabric.class.getDeclaredMethod("setFabric", Fabric.class);
method.setAccessible(true);
method.invoke(null, newFabric);
} catch (Exception e) {
Timber.e(e, e.getMessage());
}
最佳答案
来自Fabric的Mike。目前,我们仅尊重Fabric的首次初始化。一种选择是首先初始化所有内容,或者如果您可以丢失一些崩溃,则不要初始化,直到稍后在应用程序代码中初始化Twitter和Crashlytics。