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.

EscenarioQué esperar
Arranque normalonCreate → onStart → onResume
Girar la pantallaonPause → onStop → onDestroy y luego onCreate → onStart → onResume de nuevo
Botón inicio y volveronPause → onStop, y al volver onStart → onResume (sin onCreate ni onDestroy)
Cerrar y reabrir la ActivitySecuencia 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 realonSaveInstanceState 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.