Una activity es uno de los componentes fundamentales de una app Android y suele representar una única pantalla con interfaz de usuario, como una pantalla de inicio de sesión, una lista de mensajes o una página de ajustes. Cada activity es una clase que hereda de Activity o, con mayor frecuencia, de AppCompatActivity o ComponentActivity, y debe registrarse en el AndroidManifest.xml de la app. Cuando el usuario abre la app desde la pantalla de inicio, el sistema inicia la activity indicada como punto de entrada de la app y, a partir de ahí, la app puede abrir otras activities mediante intents.
Una activity tiene un ciclo de vida controlado por el sistema Android. Mediante métodos como onCreate(), onStart(), onResume(), onPause(), onStop() y onDestroy(), la app recibe notificación cuando la pantalla se crea, se vuelve visible, pierde el foco o se cierra, de modo que puedan liberarse recursos y guardarse datos en el momento adecuado. Muchas apps modernas utilizan solo una o unas pocas activities y construyen las distintas pantallas con fragments o Jetpack Compose, pero la activity sigue siendo el elemento que conecta la interfaz de usuario de la app con el sistema.
Una activity en el desarrollo de apps es una única pantalla de una aplicación Android que actúa como ventana interactiva para el usuario. Cada activity se encarga de gestionar las interacciones del usuario y presentar datos, lo que permite a los desarrolladores crear experiencias de usuario dinámicas y atractivas. Las activities pueden colaborar pasándose datos entre sí, lo que garantiza una navegación y un funcionamiento fluidos en la app.
Más sobre Activity
Una activity es un componente central en el desarrollo de aplicaciones Android que representa una única pantalla con interfaz de usuario. Cada activity es una unidad independiente que gestiona las interacciones del usuario y presenta datos, lo que permite a los desarrolladores crear experiencias de usuario dinámicas y atractivas. Las activities son elementos fundamentales de las apps Android y actúan como puntos de entrada a través de los cuales los usuarios interactúan con las funciones de la app.
Técnicamente, una activity es una subclase de la clase Activity del SDK de Android y funciona gestionando métodos del ciclo de vida que controlan cómo se crea, inicia, detiene y destruye. Cuando se inicia una activity, esta pasa por una serie de fases del ciclo de vida que permiten a los desarrolladores gestionar los recursos de forma eficiente y responder a las interacciones del usuario. Entre ellos se encuentran métodos como onCreate(), onStart(), onResume(), onPause(), onStop() y onDestroy(), cada uno de los cuales contribuye a garantizar una experiencia de usuario fluida y ágil.
Las activities pueden presentarse de distintas formas, cada una de las cuales admite distintos tipos de interacción:
Pantalla completa: en este caso, la activity actúa como una pantalla independiente que gestiona las interacciones del usuario y presenta datos. Es la forma más habitual, en la que el usuario navega entre distintas pantallas de una app.
Como diálogo: con un tema de diálogo, la activity se presenta como un cuadro de diálogo que flota sobre la pantalla actual. Esto se utiliza a veces para mostrar mensajes importantes o solicitar datos al usuario sin abandonar el contexto actual, aunque los diálogos se implementan con más frecuencia con dialog fragments o Compose.
Modo inmersivo: la activity toma el control total de la pantalla y oculta las barras del sistema, como la barra de estado y la barra de navegación, para ofrecer una experiencia inmersiva. Es ideal para juegos o reproducción multimedia, donde la concentración en el contenido es fundamental.
Uno de los mayores puntos fuertes de las activities es su capacidad para gestionar interacciones de usuario y patrones de navegación complejos. El modelo de activities de Android admite varios patrones de navegación, como el back stack, que permite a los usuarios volver a pantallas anteriores y crea una experiencia de usuario intuitiva y predecible. Además, las activities pueden compartir datos y comunicarse entre sí mediante intents, lo que permite una integración fluida entre las distintas partes de una app.
Las activities también están diseñadas para hacer un uso eficiente de los recursos. Los métodos del ciclo de vida de Android permiten a los desarrolladores optimizar el consumo de recursos liberando los innecesarios cuando una activity no está visible y volviendo a cargarlos cuando regresa al primer plano. Esto ayuda a que las apps sigan siendo ágiles y eficientes, incluso en dispositivos con recursos limitados.
En la práctica, las activities han definido la forma en que se diseñan y desarrollan las apps Android. Ofrecen un enfoque estructurado para gestionar las interacciones del usuario y los patrones de navegación, lo que permite a los desarrolladores crear experiencias de usuario completas y atractivas. Las activities están en el núcleo de muchas apps populares, donde se utilizan para organizar contenido, gestionar la entrada del usuario y navegar entre distintas funciones.
En resumen, las activities son una parte esencial del desarrollo para Android que combina flexibilidad, eficiencia y facilidad de uso en una solución que permite a los desarrolladores crear apps potentes e intuitivas. Su capacidad para gestionar ciclos de vida y patrones de navegación complejos las convierte en una herramienta central del desarrollo de apps moderno, en el que la experiencia de usuario y la gestión eficiente de los recursos son fundamentales.
Preguntas frecuentes sobre Activity
¿Qué es una activity en Android?
Una activity es uno de los elementos fundamentales de una app Android. Suele representar una única pantalla con interfaz de usuario, como una pantalla de inicio de sesión, una lista de mensajes o una página de ajustes. El usuario interactúa con la app a través de sus activities.
Cada activity es una clase que hereda de Activity o, con mayor frecuencia, de AppCompatActivity o ComponentActivity, y debe declararse en el archivo AndroidManifest.xml. Una activity se marca como punto de entrada, para que el sistema sepa qué abrir cuando el usuario pulsa el icono de la app. Las apps modernas suelen tener pocas activities y utilizan fragments o Jetpack Compose para mostrar las distintas pantallas.
¿Cómo funciona el ciclo de vida de una activity?
Una activity pasa por una serie de estados desde que se crea hasta que se cierra. Android llama a métodos concretos cuando cambia el estado. onCreate se llama cuando se crea la activity, y es aquí donde se configura la interfaz de usuario. onStart y onResume se llaman cuando se vuelve visible y está lista para usarse.
Cuando el usuario cambia a otra app o pantalla, se llama a onPause y onStop, y cuando la activity se cierra por completo, se llama a onDestroy. Colocando el código en los métodos adecuados, la app puede, por ejemplo, detener un vídeo cuando no está visible y guardar datos antes de cerrarse. Una gestión incorrecta puede provocar errores y desperdiciar recursos.
¿Cómo pasa una app de una activity a otra?
Una app pasa de una activity a otra mediante un intent. Un intent describe qué activity debe abrirse y puede contener datos, como el ID de un producto que debe mostrar la nueva pantalla. El intent se envía con el método startActivity.
La nueva activity se coloca en la parte superior de una pila conocida como back stack. Cuando el usuario pulsa atrás, se cierra la activity superior y vuelve a mostrarse la anterior. Si la nueva pantalla debe devolver un resultado, como una imagen seleccionada, se utiliza la Activity Result API. No obstante, muchas apps modernas utilizan una sola activity y el componente Navigation para cambiar de pantalla dentro de ella.
¿Qué le ocurre a una activity cuando se gira la pantalla?
Cuando el usuario gira el teléfono, la configuración cambia y, por defecto, Android destruye la activity actual y la vuelve a crear. Esto permite cargar un diseño distinto adaptado a la nueva orientación, pero también significa que pueden perderse los datos que solo estén en la activity.
Para evitarlo, se suele utilizar un ViewModel, que sobrevive a los cambios de configuración y conserva datos como las listas cargadas. Pequeñas cantidades de estado, como el texto de un campo o una posición de desplazamiento, pueden guardarse con onSaveInstanceState o con rememberSaveable en Jetpack Compose. Lo mismo ocurre cuando cambian el idioma, el tema o el tamaño de pantalla.
¿Cuál es la diferencia entre una activity y un fragment?
Una activity es un componente independiente que el sistema conoce y que se declara en AndroidManifest.xml. Actúa como contenedor de la interfaz de usuario de la app y puede iniciarse directamente, por ejemplo desde una notificación u otra app.
Un fragment es una parte más pequeña y reutilizable de la interfaz de usuario que siempre vive dentro de una activity. Pueden mostrarse varios fragments en la misma activity, como una lista y una vista de detalle una junto a otra en una tablet. Los fragments tienen su propio ciclo de vida, vinculado a la activity que los aloja. Muchas apps utilizan pocas activities y muchos fragments o pantallas de Compose.
¿Qué son los launch modes de una activity?
Los launch modes determinan cómo se sitúa una nueva activity respecto a las existentes cuando se inicia. Por defecto, se crea una nueva instancia cada vez, aunque la misma activity ya esté abierta.
Con singleTop, la activity se reutiliza si ya está en la parte superior de la pila, en lugar de crear una nueva. Con singleTask, solo existe una instancia, y las activities situadas por encima se eliminan cuando se vuelve a abrir. singleInstance coloca la activity en su propia tarea y, desde Android 12, singleInstancePerTask permite una instancia por tarea. Los launch modes se especifican en AndroidManifest.xml o mediante flags en un intent y se utilizan, por ejemplo, para evitar duplicados cuando la app se abre desde una notificación.
Activity para dummies
Una activity en una app es como una sola pantalla del móvil. Piensa en ella como una página de un libro. Cuando abres una app, aparece una pantalla en la que puedes hacer algo concreto, como leer noticias, enviar un mensaje o ver fotos. Cada una de esas pantallas es una «activity». Pasar de leer noticias a enviar un mensaje significa pasar de una activity a otra. Es la forma en que las apps organizan sus distintas funciones e información, para que sea fácil moverse por ellas y usarlas.