support - para que sirven los fragment en android
Fragmentos, setRetainInstance(verdadero) y bibliotecas con hebras (1)
Podría solucionar este problema utilizando una utilidad de simultaneidad de nivel superior, como un Latch, en el que podría esperar a que todos sus hilos esperaran hasta que se adjunte la nueva actividad (justo 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 hilos entreguen sus resultados.
Here , Dianne dice que los viejos métodos de retención de objetos a través onRetainNonConfigurationInstance()
ahora quedan obsoletos por el hecho de que puede retener las instancias de Fragment sobre los cambios de configuración.
Y here , en las demostraciones de API para fragmentos, se 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 puede no estar conectado a ninguna actividad y el hilo se termina haciendo su trabajo, es capaz de llamar a wait()
para que no intente entregar resultados mientras una Actividad no es adjunto. Encuentro esto muy útil y una excelente manera de mitigar uno de los problemas más difíciles 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 usar esta nueva característica para nuestro beneficio?
¿Cómo podemos asegurarnos de que los mensajes no se entreguen mientras una actividad no está conectada?
He estado pensando en una manera de poner en cola los mensajes y enviarlos cuando se adjunte una nueva actividad, pero quería golpearlos y ver si ya han encontrado algunas soluciones.
Además, tenga en cuenta que he examinado la API de LoaderManager, y parece que sería bueno que los datos se carguen cuando se muestra una actividad, pero no para algo basado en eventos, como iniciar sesión mediante un botón, etc.