Можно ли лениво инициализировать комплекты тканей? например, прямо сейчас:
Fabric.with(this, crashlytics, twitterCore, tweetUi); // 500ms
Я хотел бы инициализировать только Crashlytics (без твиттера), как показано ниже, потому что он в 10 раз быстрее, и я сразу не нуждаюсь в материалах Twitter.
Fabric.with(this, crashlytics); // 50ms
Позже, когда пользователь посещает активность, где мне нужны TwitterCore и TweetUi, я бы хотел добавить их в 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());
}