Sobes.tech
Junior

¿Cuál es la diferencia entre el ciclo de vida de un fragmento y el ciclo de vida de una Activity?

sobes.tech AI

Respuesta de la IA

El ciclo de vida de un fragmento está estrechamente relacionado con el ciclo de vida de la Activity padre. Un fragmento no puede existir sin una Activity.

Diferencias clave:

  • onCreate(): El fragmento tiene un método adicional onAttach() antes de onCreate(), donde se realiza la vinculación con la Activity (obtención del contexto de la Activity), y onCreateView(), donde se crea la jerarquía de vistas del fragmento.
  • onDestroy(): El fragmento tiene un método adicional onDestroyView() antes de onDestroy(), donde se limpia la jerarquía de vistas, y onDetach() después de onDestroy(), donde se realiza la desconexión de la Activity.
  • Estado: El fragmento puede ser añadido al backstack de la Activity, lo que permite restaurar su estado al volver. La Activity se destruye completamente al finalizar.
  • Anidamiento: Las Activity funcionan a nivel de pantalla, mientras que los fragmentos pueden estar anidados entre sí y en una Activity.

Tabla comparativa de los métodos principales del ciclo de vida:

Método de Activity Método(s) del Fragmento Descripción
onCreate() onAttach(), onCreate(), onCreateView() Creación de la instancia, vinculación, creación de la vista
onStart() onStart() Se vuelve visible
onResume() onResume() Comienza a interactuar con el usuario
onPause() onPause() Pasa a segundo plano o se oculta parcialmente
onStop() onStop() Se vuelve invisible
onDestroy() onDestroyView(), onDestroy(), onDetach() Destrucción de la vista, instancia, desconexión

El ciclo de vida del fragmento es más granular, lo que permite gestionar de manera más flexible el estado y comportamiento de los componentes UI dentro de una misma Activity. Por ejemplo, onCreateView() se llama cada vez que se crea la vista del fragmento, incluso si el fragmento ya fue creado (por ejemplo, al cambiar la configuración). onCreate() se llama solo una vez durante el ciclo de vida de la instancia del fragmento.