Fragmentos, setRetainInstance (true) y bibliotecas enhebradas

Aquí , Dianne dice que los antiguos métodos de retención de objetos a través de onRetainNonConfigurationInstance() ahora se hacen obsoletos por el hecho de que puede retener instancias Fragment sobre cambios de configuración.

Y aquí , en la API Demos para fragmentos, muestra cómo usar este método para mantener los hilos después de un cambio de configuración.

Veo que durante un cambio de configuración, cuando el Fragmento no puede ser conectado a cualquier actividad y el hilo se hace haciendo su trabajo, es capaz de llamar a wait() para que no intente entregar resultados mientras una actividad no es adjunto. Me parece muy útil, y una gran manera de mitigar uno de los problemas más dolor en la cola con los cambios de orientación de Android.

Sin embargo, si está utilizando una biblioteca de subprocesos (una biblioteca de API que utiliza un ejecutor de subprocesos, por ejemplo), donde no tiene acceso a wait() en dichos subprocesos, ¿cómo podríamos utilizar esta nueva característica a nuestro favor?

¿Cómo podemos garantizar que los mensajes no se entregarán mientras no se adjunte una actividad?

He estado pensando en una manera de tal vez cola de mensajes y la entrega de ellos cuando una nueva actividad se adjunta, pero quería golpear a ustedes y ver si ya has llegado con algunas soluciones.

Además, tenga en cuenta que he estudiado la API de LoaderManager y parece que sería bueno que los datos se carguen cuando se muestre una actividad, pero no para eventos basados ​​en eventos, como iniciar sesión a través de un botón, etc.

Puede solucionar este problema utilizando una utilidad de simultaneidad de nivel superior, como un bloqueo, que podría tener todos los subprocesos esperando hasta que se agregue la nueva actividad (antes de intentar acceder a la cola de mensajes para entregar el resultado).

Una vez que se adjunta la actividad, puede liberar el bloqueo, permitiendo que todos los subprocesos entreguen sus resultados.

  • Fragmento newInstance ¿por qué usar argumentos?
  • ¿Cómo puedo mostrar un ViewPager en modo de pantalla completa?
  • ¿Cómo puedo añadir un fragmento a un ViewPager? AddView bloquea mi aplicación
  • Fragmento onResume () & onPause () no se llama en backstack
  • Cómo cambiar el estilo de texto en el fragmento de preferencia
  • ¿La biblioteca de soporte de v4 usa nuevas clases cuando está disponible?
  • Quitar fragmento antiguo del gestor de fragmentos
  • Fragmento no destruido en rotación
  • Fragmentos ocultos backstack re-mostrado en el cambio de configuración
  • La aplicación se bloquea en rotación sin stackTrace
  • ¿Cómo cargar la actividad del fragmento el método de creacion () de la barra seleccionada de la barra de acciones solo si la pestaña está seleccionada?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.