No entiendo muy bien este negocio de ciclo de vida de fragmentos.¿Por qué se llama mi fragmento onCreate extensivamente cada vez que paso por mis aplicaciones viewPager?
Tengo una vista deslizante horizontal de 3 páginas bastante estándar para visualizar una sección de "vista de detalles" de mi aplicación. Inicié mi aplicación en la página intermedia de los tres. Mi FragmentActivity establece la página a la página 1.
mPager.setCurrentItem(1); //default to center page, current data view fragment
He estado usando el FragmentStatePagerAdapter porque el uso de la FragmentPagerAdapter estrelló mi aplicación a veces, al volver de un estado de suspensión, por ejemplo, y esto era la forma más rápida trabajar alrededor de eso por ahora. Parece que funciona, pero sospecho que el aspecto de Estado es lo que podría ser la causa de mi problema aquí, tal vez.
Así que al principio pensé que haría que cada fragmento hiciera el trabajo de obtener datos de un servicio de descanso y luego mostrarlos en una lista, pero ya no estoy tan seguro.
Intenté ejecutar una tarea asíncrona única para obtener datos en cada uno de los fragmentos de los eventos de creación de vistas. Luego, después de leer más sobre el ciclo de vida del fragmento, cambié a onCreate, habiendo notado que onCreateView estaba siendo llamado bastante, lo que a su vez hizo una aplicación codiciosa que con demasiada frecuencia solicitaba datos por cable.
El cambio a onCreate no ha cambiado nada. OnCreate todavía se llama llamado tanto como onCreateView para los 2 fragmentos adyacentes.
Lo curioso es que el fragmento que configuro para ser el primero en mostrarse en Fragment Activity solo obtiene el onCreate llamado one time.
Algo no se siente bien aquí.
En este momento estoy pensando que debería tener la actividad de fragmento padre declarar y llamar a todas las tareas asíncronas para obtener los datos que necesito mostrar en los fragmentos. Establezca los resultados de las llamadas asincrónicas en un objeto propiedad de la actividad del fragmento principal y haga que los fragmentos usen el objeto contenido por el padre para crear la vista de lista, etc.
¿Pero qué ocurre si las tareas asincrónicas comienzan por el padre la actividad no termina antes de cada onCreateView fragmentos se llama y el objeto contenida por el padre no está listo todavía .....
firmado, confundido y frustrado
oh ya, eso suena útil para probar. así que, oye, ¿disparar las tareas asíncronas de un fragmento de Crear parece una forma estándar de hacer las cosas? en este momento disparo tres tareas asíncronas separadas una vez que se carga mi fragmento, correcto o incorrecto ... – topwik
Sí, el único problema que podría ver con eso es si un usuario gira el dispositivo cuando se está ejecutando AsyncTask. Sin embargo, no tengo mucha experiencia con ellos. Vale la pena revisar la clase AsyncTaskLoader, creo que las clases de Loader automatizan muchas cosas para ti. –
También estoy atrapado en este tema. Ahora tengo que trabajar. Muchas gracias. – Durai