Para comprender mejor el ciclo de vida, vamos a ponerlo en práctica. Crea un proyecto nuevo sin Activity.
Vamos al archivo MainActivity.kt; si no puedes localizarlo, repasa el punto 5 de la Unidad anterior, en el que habla sobre la estructura del IDE.
Una vez localizado, sobrescribe los métodos onCreate(), onRestart(), onStart(), onResume(), onPause(), onStop() y onDestroy().
En cada uno de los métodos utiliza la función Log.d() con un texto descriptivo del método.
La clase android.util.Log dispone de diferentes funciones para escribir en un log, es decir, un archivo en el que aparecen mensajes relevantes sobre la ejecución de la aplicación.
Log.d() sirve para mensajes de depuración, que tienen menos prioridad que los mensajes Log.e(), que son errores y se muestran en rojo en las salida de mensajes Logcat. Entonces, veamos un ejemplo cómo sobrescribimos la función onCreate() para mostrar un mensaje:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(TAG, "Ciclo de vida - onCreate")
}
Observamos cómo utilizamos override para informar al compilador de que no estamos creando un método nuevo, sino sobrescribiendo el de la clase padre, que tiene igual nombre y parámetros.
Al sobrescribir funciones de las clases del sistema Android, recuerda que en la mayoría de los casos será conveniente llamar primero al método original. Lo haremos al principio del método, mediante el objeto super, que es la palabra clave para identificar al objeto padre.
Luego hemos añadido la llamada Log. La constante TAG sirve ver en el log desde qué clase imprimimos el mensaje. Podríamos definirla de la siguiente manera:
companion object {
private const val TAG = "MainActivity"
}
Ejecuta la aplicación en el emulador y comprueba qué resultados obtienes en el Logcat.
Luego cambia a otra aplicación y comprueba qué métodos del ciclo de vida se han ejecutado. Cierra la aplicación. ¿Qué métodos se ejecutan?