0Pricing
Android Academy · Lección

Activities y ciclo de vida

Aprenda qué es una Activity, comprenda las callbacks del ciclo de vida de Activity (onCreate, onStart, onResume, onPause, onStop, onDestroy) y utilice ViewBinding.

Activities y ciclo de vida es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 2 de 7. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 7 lecciones en total.

¿Qué es una Activity?

Una Activity es una pantalla individual de su aplicación Android.

  • Cada pantalla (inicio de sesión, pantalla principal o ajustes) es una Activity
  • Gestiona un diseño (XML) y las interacciones del usuario
  • Se declara en AndroidManifest.xml

Considérela el equivalente en Android de una página web: cada página es una Activity.

Ciclo de vida de una Activity

Una Activity pasa por una serie de estados del ciclo de vida mientras el usuario navega por la aplicación:

  • Creada → Iniciada → Reanudada (visible y activa)
  • Pausada (parcialmente oculta)
  • Detenida (completamente oculta)
  • Destruida (la Activity ha desaparecido)

Puede sobrescribir los métodos del ciclo de vida para responder a estas transiciones.

Callbacks del ciclo de vida

Los seis callbacks principales del ciclo de vida:

  • onCreate(): se está creando la Activity. Configure aquí el diseño.
  • onStart(): la Activity se vuelve visible.
  • onResume(): la Activity está en primer plano y el usuario puede interactuar.
  • onPause(): el usuario se está marchando. Guarde los datos temporales.
  • onStop(): la Activity ya no es visible.
  • onDestroy(): la Activity se está destruyendo.

Ejemplo de MainActivity

Una Activity mínima con registro del ciclo de vida:

import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    private val TAG = "MainActivity"

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        Log.d(TAG, "onCreate")
    }

    override fun onResume() {
        super.onResume()
        Log.d(TAG, "onResume — user is here")
    }

    override fun onPause() {
        super.onPause()
        Log.d(TAG, "onPause — saving state")
    }

    override fun onDestroy() {
        super.onDestroy()
        Log.d(TAG, "onDestroy")
    }
}

Por qué es importante el ciclo de vida

Errores habituales causados por ignorar el ciclo de vida:

  • Reproducir un vídeo en onResume y olvidar pausarlo en onPause: agota la batería
  • Registrar un listener de sensores en onCreate y no anular su registro en onDestroy: provoca una fuga de memoria
  • No guardar los datos de un formulario en onPause: el usuario pierde su progreso durante una llamada telefónica

Guardar el estado: onSaveInstanceState

Cuando el usuario gira el teléfono, la Activity se destruye y se vuelve a crear. Se pierde el estado de la interfaz.

Guarde el estado transitorio en onSaveInstanceState(bundle) y restáurelo en onCreate(savedInstanceState).

Guardar y restaurar el estado

Conserve los datos durante los cambios de configuración:

class CounterActivity : AppCompatActivity() {

    private var count = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_counter)

        // Restore saved state after rotation
        count = savedInstanceState?.getInt("count") ?: 0
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putInt("count", count)
    }
}

Pila de retroceso

Android gestiona una pila de retroceso de Activities:

  • Al iniciar una Activity nueva, se añade a la pila
  • Al pulsar Atrás, se extrae la Activity superior y se destruye
  • La Activity anterior se reanuda automáticamente

Por eso no debe llamar a finish() manualmente, a menos que quiera eliminar específicamente la pantalla actual de la pila de retroceso.

Cambios de configuración

Cualquier cambio de configuración (rotación, cambio de idioma o conexión de un teclado) vuelve a crear la Activity de forma predeterminada.

La solución moderna consiste en usar un ViewModel: sobrevive a los cambios de configuración y conserva los datos de forma segura. Aprenderá sobre ViewModel en el módulo de arquitectura.

Comprobación rápida

¿En qué método del ciclo de vida debe configurar el diseño (llamar a setContentView)?

Resumen: Activities y ciclo de vida

Ahora comprende las Activities de Android:

  • Una Activity = una pantalla de su aplicación
  • Ciclo de vida: onCreate → onStart → onResume → onPause → onStop → onDestroy
  • Guarde el estado transitorio en onSaveInstanceState
  • La rotación destruye y vuelve a crear la Activity
  • Android gestiona automáticamente una pila de retroceso

A continuación: diseñar pantallas con diseños y vistas.

Preguntas frecuentes

¿La lección «Activities y ciclo de vida» es gratis?

Sí — el texto completo de «Activities y ciclo de vida» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 7 lecciones en total.

¿Qué aprenderé en «Activities y ciclo de vida»?

Aprenda qué es una Activity, comprenda las callbacks del ciclo de vida de Activity (onCreate, onStart, onResume, onPause, onStop, onDestroy) y utilice ViewBinding. Practicas Android Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Android Academy?

No se requiere experiencia previa. Android Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 7.

¿Cuánto tiempo toma la lección «Activities y ciclo de vida»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Android Academy?

Sí. Cada lección de Android Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Estructura del proyecto y manifiesto
  2. Activities y ciclo de vida
  3. Layouts y vistas
  4. Gestión de la entrada del usuario
  5. Intents y navegación
  6. Fragments
  7. Permisos y solicitudes en tiempo de ejecución
← Volver a Android Academy