A2.3
Capturas Logcat + código
Apoyo: apartado c
Experimento de ciclo de vida
Observa con Logcat las transiciones de estado de una Activity y comprueba que onSaveInstanceState protege los datos de interfaz frente a la rotación de pantalla.
Tu progreso en esta tarea
0/10 pasos completados
1Instrumenta la Activity
Usa un proyecto propio (por ejemplo, el esqueleto del Proyecto A si ya existe, o cualquier Activity de prueba).
kotlin
private val TAG = "CicloVida"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(TAG, "onCreate")
}
override fun onStart() {
super.onStart()
Log.d(TAG, "onStart")
}
override fun onResume() {
super.onResume()
Log.d(TAG, "onResume")
}
override fun onPause() {
super.onPause()
Log.d(TAG, "onPause")
}
override fun onStop() {
super.onStop()
Log.d(TAG, "onStop")
}
override fun onDestroy() {
super.onDestroy()
Log.d(TAG, "onDestroy")
}
2Provoca y registra las transiciones
Con Logcat abierto y filtrado por tu etiqueta (TAG), provoca cada escenario y anota el orden exacto de callbacks que aparece.
| Escenario | Qué esperar |
|---|---|
| Arranque normal | onCreate → onStart → onResume |
| Girar la pantalla | onPause → onStop → onDestroy y luego onCreate → onStart → onResume de nuevo |
| Botón inicio y volver | onPause → onStop, y al volver onStart → onResume (sin onCreate ni onDestroy) |
| Cerrar y reabrir la Activity | Secuencia completa: destrucción y recreación desde cero |
La app no muere al cambiar de appSi el usuario pulsa inicio y vuelve rápido, no se ejecutan
onCreate ni onDestroy: la Activity sigue viva en memoria, solo detenida.3Protege el estado frente a la rotación
Un giro de pantalla destruye y recrea la Activity: sin gestión explícita, las variables en memoria se pierden.
kotlin
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("texto_usuario", campoTexto.text.toString())
outState.putInt("posicion_seleccionada", posicionActual)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (savedInstanceState != null) {
val texto = savedInstanceState.getString("texto_usuario")
val posicion = savedInstanceState.getInt("posicion_seleccionada")
}
}
No es persistencia real
onSaveInstanceState solo preserva estado temporal de interfaz. No sustituye una base de datos ni preferencias para datos que deban sobrevivir a que el usuario cierre la app o desinstale.4Entrega
✓Criterios de evaluación
- 1h — Se han utilizado emuladores para comprobar el funcionamiento de las aplicaciones.
- 2a — Se han reconocido las diferentes fases del ciclo de vida de una aplicación.
Adaptado de apartado c y actividades.