Inicialización perezosa de los kits de tela?

¿Es posible inicializar perezosamente kits de tela? Por ejemplo, ahora mismo hago:

Fabric.with(this, crashlytics, twitterCore, tweetUi); // 500ms 

Me gustaría inicializar sólo Crashlytics (no twitter cosas), como a continuación, porque es 10 veces más rápido, y no necesito las cosas de Twitter de inmediato

 Fabric.with(this, crashlytics); // 50ms 

Más tarde, cuando el usuario visita una actividad donde necesito TwitterCore y TweetUi, me gustaría añadirlos a Fabric antes de usarlos.

Es posible ?

Edit: Me las arreglé para hacerlo con la reflexión, que obviamente no es ideal, pero funciona por el momento. Todavía estoy buscando una solución adecuada a esto. He aquí cómo lo hice:

  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()); } 

2 Solutions collect form web for “Inicialización perezosa de los kits de tela?”

Mike de la tela aquí. Actualmente, solo respetamos la primera inicialización de Fabric. Una opción sería inicializar todo por adelantado o si estás bien por faltar algunos bloqueos, no inicializar a Twitter y Crashlytics hasta más tarde en el código de tu aplicación.

Puede utilizar el patrón del constructor para la inicialización y puede deshabilitar el informe de errores en el modo de depuración:

 CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build(); Fabric.with(this, new Crashlytics.Builder().core(core).build(), new Crashlytics()); 

Actualización 1: ¿Agregar más Kit después o Lazy inicialización de kits de tela ?:

 CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build(); //Store the below fabric as an instance member Fabric fabric = Fabric.with(this, new Crashlytics.Builder().core(core).build(), new Crashlytics ()); //To add later: fabric.getKits().add(YOUR_NEW_KIT); 
  • Miles de insertos crudos de ORMLite que tardan varios minutos en Android
  • ¿Cómo puedo eliminar los recursos no utilizados de las bibliotecas de terceros que he incluido en Android?
  • El desplazamiento de grandes listas de adaptadores basados ​​en Cursor es más rápido que las listas mucho más pequeñas de adaptadores en memoria
  • Aplicación que se bloquea sólo en dispositivos lollipop
  • Android: requestLayout () incorrectamente llamado
  • ¿Qué es "pools de asignación para objetos temporales"?
  • Eficiencia de getDrawable (): ¿es el Drawable almacenado en caché por el framework?
  • Desempeño de Android: Strings vs. Enums vs. Static Final Ints
  • ¿Estoy bebiendo la plataforma / hardware?
  • Gran número de TextViews un éxito de rendimiento? ¿Debo cambiar a ListView en lugar de usar Scrollview?
  • ¿Cómo ahorrar una matriz larga como números hexadecimales inversos más rápido?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.