¿Qué puedes contarme sobre el ciclo de vida de Activity en Android?
sobes.tech AI
Respuesta de la IA
El ciclo de vida de Activity es un conjunto de estados y transiciones entre ellos, por los que pasa cada instancia de Activity desde su creación hasta su destrucción. Está definido por un conjunto de métodos callback.
Los métodos callback principales del ciclo de vida:
onCreate(): Se llama cuando se crea por primera vez unaActivity. Aquí se realiza la inicialización de la interfaz de usuario, el enlace de datos y otras acciones únicas.onStart(): Se llama cuando laActivityse vuelve visible para el usuario, pero aún no ha recibido foco.onResume(): Se llama cuando laActivityrecibe foco y se vuelve activa. Aquí generalmente comienzan las animaciones y otras acciones interactivas.onPause(): Se llama cuando laActivitypierde foco, pero aún es visible (por ejemplo, un diálogo semitransparente sobre ella). Aquí se deben detener las operaciones que consumen recursos.onStop(): Se llama cuando laActivityya no es visible para el usuario. Aquí se guardan los datos no guardados y se liberan recursos que ya no son necesarios.onDestroy(): Se llama antes de que laActivitysea destruida. Aquí se liberan todos los recursos restantes.onRestart(): Se llama después deonStop()cuando laActivityse vuelve a mostrar. Le sigueonStart().
Gráficamente, el ciclo de vida puede representarse así:
Created -> Started -> Resumed -> Paused -> Stopped -> Destroyed
También existen transiciones:
- Created -> Started (después de
onStart()) - Started -> Resumed (después de
onResume()) - Resumed -> Paused (cuando pierde foco)
- Paused -> Resumed (cuando recupera foco)
- Paused -> Stopped (cuando se oculta completamente)
- Stopped -> Destroyed (al finalizar la actividad)
- Stopped -> Restarted -> Started (después de
onRestart())
Es importante gestionar correctamente el estado de la Activity en estos métodos callback para evitar fugas de memoria y asegurar un comportamiento correcto de la aplicación al cambiar la configuración o alternar entre Activity. Para guardar el estado, se usa onSaveInstanceState() (antes de onStop()) y la restauración se realiza en onCreate() o onRestoreInstanceState() (después de onStart()).
Ejemplo de uso de onSaveInstanceState():
// Guardar estado
override fun onSaveInstanceState(outState: Bundle) {
outState.putString("my_data", "some_value")
super.onSaveInstanceState(outState)
}
// Restaurar estado
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
if (savedInstanceState != null) {
val myData = savedInstanceState.getString("my_data")
// Usar myData
}
}