Introducción a las actividades

La clase Activity es un componente crucial de una aplicación de Android, y la forma en que se lanzan y se organizan las actividades es una parte fundamental del modelo de aplicación de la plataforma. A diferencia de los paradigmas de programación en los que las aplicaciones se main()inician con un método. el sistema Android inicia el código en una Activityinstancia al invocar métodos de devolución de llamada específicos que corresponden a etapas específicas de su ciclo de vida.

Este documento presenta el concepto de actividades, y luego proporciona algunas pautas ligeras sobre cómo trabajar con ellas. Para obtener información adicional acerca de las mejores prácticas en la arquitectura de su aplicación, consulte la Guía de arquitectura de la aplicación .



El concepto de actividades

La experiencia de la aplicación móvil difiere de la de su computadora de escritorio en que la interacción del usuario con la aplicación no siempre comienza en el mismo lugar. En cambio, el viaje del usuario a menudo comienza de manera no determinista. Por ejemplo, si abre una aplicación de correo electrónico desde su pantalla de inicio, es posible que vea una lista de correos electrónicos. Por el contrario, si está utilizando una aplicación de medios sociales que luego inicia su aplicación de correo electrónico, puede ir directamente a la pantalla de la aplicación de correo electrónico para redactar un correo electrónico.

La Activityclase está diseñada para facilitar este paradigma. Cuando una aplicación invoca a otra, la aplicación de llamada invoca una actividad en la otra aplicación, en lugar de la aplicación como un todo atómico. De esta manera, la actividad sirve como punto de entrada para la interacción de una aplicación con el usuario. Implementa una actividad como una subclase de la Activityclase.

Una actividad proporciona la ventana en la que la aplicación dibuja su UI. Esta ventana generalmente llena la pantalla, pero puede ser más pequeña que la pantalla y flotar sobre otras ventanas. En general, una actividad implementa una pantalla en una aplicación. Por ejemplo, una de las actividades de una aplicación puede implementar una pantalla de Preferencias , mientras que otra actividad implementa una pantalla Seleccionar foto



Ciclo de vida

Cuando el usuario comienza a abandonar la actividad, el sistema llama a métodos para desmantelar la actividad. En algunos casos, este desmantelamiento es solo parcial; la actividad aún reside en la memoria (como cuando el usuario cambia a otra aplicación) y aún puede regresar al primer plano. Si el usuario vuelve a esa actividad, la actividad se reanuda desde donde el usuario la dejó. La probabilidad del sistema de matar un proceso dado, junto con las actividades en él, depende del estado de la actividad en ese momento. El estado de la actividad y la expulsión de la memoria proporcionan más información sobre la relación entre el estado y la vulnerabilidad a la expulsión.

Dependiendo de la complejidad de su actividad, probablemente no necesite implementar todos los métodos del ciclo de vida. Sin embargo, es importante que comprenda cada una e implemente aquellas que aseguren que su aplicación se comporte de la manera que los usuarios esperan.

La siguiente sección de este documento proporciona detalles sobre las devoluciones de llamada que usa para manejar transiciones entre estados.

Decisiones del ciclo de vida

Esta sección proporciona información conceptual y de implementación sobre los métodos de devolución de llamada usados ​​durante el ciclo de vida de la actividad.

Algunas acciones, como las llamadas , pertenecen a los métodos del ciclo de vida de la actividad en sí. Sin embargo, el código que implementa las acciones de un componente dependiente debe colocarse en el componente mismo. Para lograr esto, debe hacer consciente al componente dependiente del ciclo de vida. Consulte Manejo de ciclos de vida con componentes conscientes del ciclo de vida para obtener información sobre cómo hacer que sus componentes dependientes sean conscientes del ciclo de vida. setContentView()