En este tutorial se explica que es un fragmento y su ciclo de vida en Android Studio. Explicamos que métodos se llaman en cada estado del ciclo de vida y en que situaciones ocurre cada estado.
Un fragmento es similar a una Activity (Actividad de aquí en adelante).
Si quieres ver el ciclo de vida de una actividad ve al tutorial de Ciclo de vida de una actividad.
Lo podemos entender como una sección de nuestra actividad que:
- Tiene su propio ciclo de vida.
- Está compuesto por una UI en XML y un archivo de código. Igual que una actividad.
- Por lo que tiene sus propias entradas y salidas de datos.
- También tiene sus propios eventos de cierre e inicio.
- Lo podemos agregar y quitar de la actividad en cualquier momento.
Detalles de un fragmento.
- Se pueden combinar múltiples fragmentos en una sola actidi. De esta manera tendrás diferentes UI en la misma actividad.
- El ciclo de vida de un fragmento se ve afectado directamente por el ciclo de vida de la actividad. Por ejemplo si la actividad está pausada, todos los fragmentos también lo están.
- Un fragmento siempre debe de estar alojado en una actividad.
- Puedes usar un fragmento en diferentes actividades.
- Los fragmentos se diseñaron principalmente para el uso en Tablet. Las cuales tienen la pantalla mucho más grande. Por lo que en todo ese espacio se pueden usar diversos fragmentos mostrados al mismo tiempo. Los cuales para dispositivos más pequeños, se usa un fragmento a la vez que ocupa toda la pantalla.
- Podemos crear una UI formada con varios fragmentos. Puede ser una UI en la que con botones alternamos entre diferentes UI de distintos fragmentos. Tipo Bottom Navegation bar.
Ciclo de vida de un fragmento, en Android Studio.
Hay 6 estados principales para el ciclo de vida de un fragmento los cuales son:
Creado, iniciado, reanudado, pausado, detenido y destruido. En cada estado hay fragment callbacks los cuales se usan para ejecutar diversas acciones según el estado del ciclo de vida.
Creado (Created).
Esta etapa del ciclo de vida, es cuando se crea el fragmento.
Lo primero en ocurrir es cuando el fragmento se asocia con la actividad, cuando se asocian se llama al método:
onAttach()
Luego se crea el fragmento, es similar a una actividad. Se llama con el método:
onCreate()
Después de crear el fragmento, el sistema va a diseñar la interfaz de usuario (UI) por primera vez. Cuando esto ocurre se llama al método:
onCreateView()
Por último, ocurre otra llamada cuando se muestra el método onCreate() de la actividad. Esta llamada se hace con el método:
onActivityCreated()
Con estos métodos son con los que se crea un fragmento. Una vez creado pasamos al siguiente estado, que es Iniciado.
Estado Iniciado (Started)
Es un método similar al de cualquier actividad, y ocurre cuando el fragmento se inicia. Llamando al método:
onStart()
Después pasamos al estado siguiente que es Reanudado.
Reanudado (Resumed).
Este estado es cuando el fragmento puede verse en la Actividad que estamos ejecutando en ese momento. Este estado inicia llamado al método:
onResume()
De aquí no pasará nada, a menos de que el fragmento se cierre o se cierre la actividad. O bien el usuario haga alguna acción como presionar el botón de atrás.
Pausado (Paused)
Este estado ocurre cuando el usuario navega hacia atrás, por ejemplo con el botón back button, o si el fragmento es removido o reemplazado. Se llama al método:
onPause()
Si esta en este estado es probable que otra actividad este en primer plano, pero la actividad que tiene este fragmento aun esta visible.
O bien de alguna manera el fragmento sigue visible en segundo plano.
Si el fragmento ya no es visible pasamos al siguiente estado que es Detenido.
Detenido (Stopped).
Este estado puede ocurrir por muchas razones.
- Puede ocurrir cuando el fragmento ya no es visible.
- Porque el fragmento se quitó de la actividad.
- También porque la actividad en la que está el fragmento se cerró o se detuvo.
Cuando estamos en este estado se llama al método:
onStop()
En este estado, nuestro fragmento sigue estando activo, es decir, el sistema aún tiene su información y su estado.
Pero si finaliza la actividad, se cerrará el fragmento. Por lo que el último estado es Destruido.
Destruido (Destroyed).
Este estado ocurre cuando se cierra la actividad. Y llama a 3 métodos al momento de destruir el fragmento.
Primero se destruye la interfaz de usuario (UI) del fragmento, cuando pasa esto se llama al método:
onDestroyView()
Luego se destruye el fragmento, similar a cuando se destruye una actividad. Aquí se llama al método:
onDestroy()
Y por último se desasocia al fragmento de la actividad. Y llama al método:
onDetach()
Con esto es el fin del ciclo de vida de un Fragmento.