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); 
  • Rendimiento de Android NDK sobre el código Java habitual
  • Float o doble?
  • Utilizando el SDK de Android en un Mac, Eclipse es muy lento. ¿Cómo puedo acelerarlo?
  • ¿Están las opiniones "GONE" infladas?
  • Parse ~ 1 MB JSON en Android muy lento
  • Child Views Tomando demasiado tiempo para dibujar en la pantalla
  • ¿Por qué el tipo primitivo corto es significativamente más lento que largo o int?
  • La aplicación de Android comienza muy lentamente en el primer lanzamiento, pero normalmente en los próximos lanzamientos
  • Hex to String en Java El rendimiento es demasiado lento
  • Cómo dibujar una imagen de fondo grande con libgdx - las mejores prácticas?
  • ¿Qué es "pools de asignación para objetos temporales"?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.