Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Apuntes Tarea02 PMDM

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

Apuntes Tarea02 PMDM

1.- Módulos para el desarrollo de


aplicaciones. Instalación de Android
Studio

Módulos para desarrollar una aplicación


Android
Una vez realizado un repaso general sobre las características con las que podemos
encontrarnos en el entorno de ejecución de una aplicación Android, ¿qué
bibliotecas adicionales hay que instalar para poder desarrollar con Android? ¿Es
suficiente con el SDK clásico? ¿Es necesario o aconsejable tener también un IDE?

Para compilar un programa con Android se necesita como mínimo tener instalado
el SDK el cual se puede descargar de por separado. A partir de ahí se pueden
descargar e instalar el resto de herramientas (emuladores, entornos de desarrollo,
depurador, etc.).

Del mismo modo que se haría con Android, podría hacerse con cualquier otra
plataforma de desarrollo con la que se hubiera decidido trabajar: Java ME, iOS,
Windows Phone, etc. En cada caso serían necesarias unas herramientas
específicas (compiladores, editores, depuradores, emuladores, etc.). Todo esto lo
hemos tratado ya en un apartado anterior.

En el caso particular de Android puedes optar por la posibilidad que se ha


planteado de instalar el SDK junto con otros elementos o bien utilizar algún otro
entorno compatible que traiga todas las herramientas necesarias incorporadas. Para
este curso usaremos el entorno Android Studio, con los paquetes necesarios para
trabajar con Android. Precisamente en la página oficial de Android Studio nos da
la posibilidad de instalarnos el IDE Android Studio, incluyendo el SDK, que es la
forma habitual y por defecto, o bien sin incluirlo.

2.- Integración en el entorno de


desarrollo.

Recomendación
En caso de no contar con los permisos necesarios para instalar la aplicación en
tu ordenador debes conseguirlos.

Podrías plantearte usar una máquina virtual cómo las que has utilziado en otros
módulos del curso. Pero ten en cuenta que para poder probar tus aplicaciones,
Android Studio usa lo que se llama un virtualizador de dispositivos Android
(AVD). Este depende de la configuración de tu SW de virtualización (VirtualBox,
HyperV,...), la configuración de tu BIOS e incluso tu microprocesador y hay
muchos casos en los que no se comporta de forma adecuada.

Te recomendamos por tanto que uses una máquina real para evitar problemas
con los emuladores y poder incluso instalar otros diferentes a los que te ofrece
Android Studio de un modo más sencillo.

2.1.- Creación de un proyecto.


Para describir este apartado, usaremos la referencia proporcionada desde esta
página de Creación de proyectos de developer.android.com.

Un proyecto de Android Studio contiene uno o más módulos que mantienen tu


código organizado en unidades de funcionalidad discretas. Veremos la manera de
iniciar un proyecto nuevo o importar uno existente.

Android Studio facilita la creación de apps de Android para varios factores de forma,
como teléfonos y tablets, Wear OS , Android TV y Android Automotive. El asistente
New Project te permite elegir los formatos para tu app y completar la estructura del
proyecto con todo lo que necesitas para comenzar. Revisa y sigue los siguientes
pasos para crear un proyecto nuevo.

- Paso 1: Nuevo Proyecto


Si no tienes un proyecto abierto, Android Studio te muestra la pantalla de
bienvenida. Para crear un proyecto nuevo, haz clic en New Project.
Si tienes un proyecto abierto, Android Studio muestra el entorno de desarrollo. Para
crear un proyecto nuevo, haz clic en File > New > New Project.

- Paso 2: Agregar una actividad


En la siguiente pantalla, puedes seleccionar un tipo de proyecto. Escogeremos
Phone and Tablet con una actividad vacía (Empty Activity)
- Paso 3: Configuración del proyecto

Introduce los siguientes datos de configuración del nuevo proyecto que estás
creando:

● Nombre de la aplicación: Hola mundo


● Nombre del paquete: com.miempresa.holamundo
● Ubicación para guardar el proyecto: por defecto o la que elijas
● Lenguage: Java
● Nivel API mínimo: escoge aquel que permita que nuestra app se ejecute en
valores cercanos el 100% de los dispositivos
● No marcar la opción Use Legacy android.support libraries

Pulsar el botón Finalizar.

A continuación debe aparecer el nuevo proyecto abierto en la ventana de Android


Studio.

- Paso 4: Seleccionar factores de forma y el nivel de API


Este paso no lo realizaremos ahora pero lo comentamos para verlo más adelante en
el curso.

Ilustración que muestra la distribución de las versiones Android en tanto porciento y


la API que debemos elegir.
Google Developers (Uso educativo nc)
Podremos seleccionar los factores de forma admitidos por tu app (o añadirlos con
File > New > New Module), como teléfonos y tablets, Wear OS , Android TV y
Android Automotive. Los formatos seleccionados se convierten en los módulos de la
app dentro del proyecto. Para cada formato, también puedes seleccionar el nivel de
API para esa app. Asimismo, podremos seleccionar las versiones mínimas para los
distintos factores de forma. Esta selección hará que nuestra aplicación sea
compatible con más o menos versiones de Android, tal y como se muestra en esta
tabla.

Por ejemplo, según la imagen, si elegimos la API29, nuestra aplicación será


compatible, en principio sólo con el 50,8% de todos los dispositivos Android tablet y
teléfonos que hay en uso en el mundo.
Ilustración que muestra la pantalla de Nuevo Módulo de Android Studio
Google Developers (Uso educativo nc)
NOTA: Para eliminar módulos añadidos, nos colocamos encima de la carpeta del
módulo añadido y con el botón derecho "Open Module Settings" para eliminarlo con
el "-". Depués suprimimos la carpeta.

Cada factor de forma será un módulo en nuestra app, como se puede ver en la
imagen de la derecha (en este caso hemos supuesto que hemos elegido los
factores de forma Phone and Tablet y TV):

- Paso 5: Actividad principal


Una actividad (activity) es un componente de la aplicación que contiene una
pantalla con la que los usuarios pueden interactuar para realizar una acción, como
marcar un número telefónico, tomar una foto, enviar un correo electrónico o ver un
mapa. A cada actividad se le asigna una ventana en la que se puede dibujar su
interfaz de usuario. La ventana generalmente abarca toda la pantalla, pero en
ocasiones puede ser más pequeña que esta y quedar "flotando" encima de otras
ventanas.

Una aplicación generalmente consiste en múltiples actividades vinculadas de forma


flexible entre sí. Normalmente, una actividad en una aplicación se especifica como
la actividad "principal" que se presenta al usuario cuando este inicia la aplicación por
primera vez. Cada actividad puede a su vez iniciar otra actividad para poder realizar
diferentes acciones.
Por ahora nuestro proyecto sólo tiene una actividad que es la principal representada
por:

a. La clase MainActivity (con fichero de código fuente MainActivity.java)


b. La disposición o layout activity_main (almacenada en el fichero XML:
activity_main.xml) que contiene la información necesaria para dibujar en
pantalla la interfaz gráfica de la actividad principal
Nota: no es obligatorio, sin embargo, por ahora, la primera actividad que crearemos
será la actividad principal de la aplicación. Mantendremos el nombre MainActivity
con fichero de interfaz activity_main, lo cual ayudará a identificar y organizar las
partes de la aplicación. Por otro lado, comentar que la actividad principal no tiene
por qué ser la primera actividad que se abre en la aplicación, aunque será lo más
frecuente. Puede suceder, que antes de abrir la actividad principal se abra lo que se
conoce como una pantalla de bienvenida (splash screen) que ayuda a mejorar la
experiencia de usuario. Esto será habitual en aplicaciones más trabajadas o en fase
de producción.

Para ver la relación existente entre la clase MainActivity y su disposición (layout)


podemos pulsar Ctrl+BIzq (Botón izquierdo del ratón) sobre el nombre de la clase
MainActivity en la línea de código "public class MainActivity" y nos llevará al fichero
XML asociado. Asimismo si pulsamos Ctrl+BIzq sobre el nombre de una clase, el
entorno de desarrollo Android Studio nos llevará a su definición; puedes probar
pulsando sobre Bundle (el tipo del parámetro del método onCreate). En el caso de
MainActivity no nos llevó a su definición ya que estamos en ella (en el fichero
MainActivity.java donde se define la propia clase); en vez de eso nos mostró los
sitios donde se usa esta clase (uno de ellos es el fichero XML de la disposición
asociada).

- Paso 6: Desarrollar tu app


Android Studio crea la estructura predeterminada de tu proyecto y se abre el entorno
de desarrollo. Si tu app admite más de un formato, Android Studio crea una carpeta
de módulos con archivos de origen completos para cada uno de ellos, como se
muestra en la siguiente figura, donde se puede apreciar que:

● En la parte superior nos encontramos con un menú y/o barra de


herramientas.
● En el panel lateral izquierdo tenemos un navegador de la estructura de
ficheros del proyecto.
● En parte central disponemos de un panel con una paleta de elementos
incorporables en una emulación de la interfaz visual de mi aplicación.
● En el panel lateral derecho disponemos de un árbol de componentes de la
interfaz visual, así como un descriptor de propiedades de cada elemento
incorporado.

2.2.- Escritura de código.


Lo más habitual, al menos en los primeros pasos con Android Studio es partir de
una aplicación previa básica que a modo de esqueleto permita agregar las
particularidades necesarias para dar respuesta a las necesidades a cubrir por
nuestra aplicación. Es decir, aprovecharemos las plantillas que nos proporciona
Android Studio, y sobre la que elijamos, comenzaremos a trabajar para desarrollar
nuestra aplicación. Concretamente, vamos a trabajar sobre la plantilla "Empty
Activity" que tiene los elementos estrictamente necesarios para poder ejecutar la
aplicación generada. Además, es habitual también, al menos, en los primeros pasos
con Android Studio, mantener el nombre de actividad que pone por defecto
(MainActivity), de forma que cuando arranque la aplicación, esta será la actividad
(activity) que cargará en primer lugar.

Posteriormente, podremos incorporar más actividades para completar nuestra


aplicación. También podremos cambiar el nombre de cualquiera de ellas, incluido
MainActivity. Todas las actividades que vayamos incorporando en nuestra aplicación
quedarán reflejadas en el fichero AndroidManifest.xml que veremos posteriormente.
Además dicho fichero permitirá establecer cúal será la actividad con la que
arrancará la aplicación.

Según la documentación proporcionada por Android Developers:


Una Activity es un componente de la aplicación que contiene una pantalla con la que
los usuarios pueden interactuar para realizar una acción, como marcar un número
telefónico, tomar una foto, enviar un correo electrónico o ver un mapa. A cada
actividad se le asigna una ventana en la que se puede dibujar su interfaz de usuario.
La ventana generalmente abarca toda la pantalla, pero en ocasiones puede ser más
pequeña que esta y quedar "flotando" encima de otras ventanas.

Una aplicación generalmente consiste en múltiples actividades vinculadas de forma


flexible entre sí. Normalmente, una actividad en una aplicación se especifica como
la actividad "principal" que se presenta al usuario cuando este inicia la aplicación por
primera vez. Cada actividad puede a su vez iniciar otra actividad para poder realizar
diferentes acciones. Cada vez que se inicia una actividad nueva, se detiene la
actividad anterior, pero el sistema conserva la actividad en una pila (la "pila de
actividades"). Cuando se inicia una actividad nueva, se la incluye en la pila de
actividades y capta el foco del usuario. La pila de actividades cumple con el
mecanismo de pila "el último en entrar es el primero en salir", por lo que, cuando el
usuario termina de interactuar con la actividad actual y presiona el botón Atrás, se
quita de la pila (y se destruye) y se reanuda la actividad anterior.

Así pues, de forma un poco simple, podremos asociar el concepto de Activity al de


"pantalla" o ventana de la aplicación, de forma que todas las diferentes pantallas
que pudiéramos ver en una aplicación tendrán asociadas una actividad.

Las actividades estarán compuestas por una parte lógica y una parte gráfica.

La parte lógica se corresponderá con un archivo .java, que contiene la clase para
poder interactuar desde esa actividad, a través de los diferentes métodos de que
disponga, e incluso apoyándose en otros ficheros .java que contengan clases que
también interactúen entre sí.

Por otro lado, la parte gráfica normalmente se corresponderá con un fichero .xml en
el que se define la disposición (layout) de los elementos que se mostrarán. Así, en
dicho fichero, mediante etiquetas XML específicas, se podrán incorporar todos
aquellos elementos que queramos que se muestren en mi interfaz.

Veremos más adelante, cuando planteemos alguna aplicación con interfaz


"programática", que será posible incorporar los elementos gráficos directamente en
el fichero .java, pero en general, esto suele ser bastante más costoso en esfuerzo y
tiempo.

Ilustración que muestra la pantalla con el código de main_activity en Android Studio


Google Developers (Uso educativo nc)
Resumiendo, la escritura se hará en ficheros .java, para incorporar el código
(utilizando lenguaje de programación Java) responsable de la lógica de mi
aplicación y en ficheros XML para incorporar el código (utilizando lenguaje de
etiquetas XML) responsable de la presentación o aspecto de la interfaz.

Al crear nuestra primera aplicación, podemos ver ambas facetas. Para ello,
completamos la creación de nuestro primer proyecto (llamado HolaMundo), y vemos
que a través del navegador de proyectos ubicado en el marco (frame) de la
izquierda se crean 2 ficheros relacionados entre sí:

MainActivity, es la clase Java definida en el fichero MainActivity.java, y que


contendrá las especificaciones lógicas de la actividad principal y de momento única,
de nuestra aplicación.
activity_main.xml contendrá las especificaciones de apariencia o diseño de la
interfaz de esa actividad.
En los siguientes subapartados veremos el contenido de cada fichero y los
explicaremos con más detalle.

2.3.- Compilación.
Para compilar el proyecto basta con ir a Build > Make Project y veremos que nos
notifica que empezará a ejecutarse Gradle.

Para compilar y además ejecutar tu app, bastará con hacer clic en el el botón Run
situado en la barra de herramientas, o bien, a través de menú Run > Run 'app'.

Android Studio compilará la app con Gradle, y a continuación, solicitará que


seleccionemos un destino de implementación (un emulador o un dispositivo
conectado) y, luego, cargará la app en dicho destino. Si no tenemos ningún
dispositivo preparado para poder emular la aplicación, Android Studio mostrará un
mensaje similar a este: Error running app: No target device found.

Podremos personalizar parte de este comportamiento predeterminado (por ejemplo,


la selección de un destino de implementación automático). Veremos en siguientes
apartados aspectos relacionados con el emulador y la ejecución de aplicación sobre
él y otros aspectos relacionados con la ejecución en un dispositivo físico.
2.4.- Emuladores.
Normalmente los entornos de desarrollo integrados suelen incorporar uno o varios
emuladores que te servirán para poder probar las aplicaciones antes de instalarlas
en el dispositivo para el cual se han programado. Así podrás observar si la
aplicación funciona correctamente y si tiene más o menos el aspecto que tenías
pensado. Hay que tener en cuenta que los emuladores no siempre van coincidir en
aspecto (y a veces incluso en funcionalidad) con el dispositivo real y podrás
encontrar abundantes diferencias dependiendo de diversos factores como por
ejemplo el tipo de dispositivo que se emule. No es lo mismo emular un teléfono con
Windows Phone, que un iPhone o un iPad, o un teléfono con Android, o un
dispositivo móvil con Java ME.

Independientemente de la plataforma para la que vayas a desarrollar las


aplicaciones (Android, iOS, Java ME, etc.) es importante que el entorno que elijas
disponga de emuladores pues es lo que utilizarás la mayor parte del tiempo. Gran
parte del proceso de depuración se realizará con el emulador, podremos ejecutar las
instrucciones paso a paso, establecer puntos de ruptura (breakpoints), observar el
contenido de variables, etc. Además en muchos casos es posible que no tengas a tu
disposición en ese momento el dispositivo concreto para el que deseas programar
de manera que necesitarás el emulador.

Google Developers (Uso educativo nc)

En principio trataremos de trabajar con la aplicación de emulación proporcionada


por Android (AVD), pero es posible utilizar otras aplicaciones gratuitas o de pago
que consiguen emulaciones tan buenas o incluso más rápidas que la AVD. Éstas,
normalmente se valen del uso de máquinas virtuales para poder funcionar.

Hay que tener en cuenta que si decidimos cambiar el tipo de emulador utilizado, la
salida podrá ser ligeramente diferente en cuanto al aspecto estético del dispositivo
emulado.

Si deseamos usar Android Emulator para ejecutar nuestra app, debes preparar
un Android Virtual Device (AVD). Si todavía no lo hemos creado, cuando hagamos
clic en Run, aparecerá un error ya que la app no encuentra un dispositivo sobre el
que ejecutarse. Para solventar el problema debemos abrir Tools > Device Manager
desde donde podremos elegir Create Device. Seguiremos las instrucciones del
asistente Virtual Device Configuration para definir el tipo de dispositivo que
deseas emular, seleccionando la categoría (teléfono, TV, Wear, tablet o Automotive),
el modelo y la imagen del sistema (a descargar).

2.5.- Instalación y ejecución en un


dispositivo real.
Como ya se ha comentado antes, algo que debes tener en cuenta cuando se
desarrollan aplicaciones con la tecnología Android Studio (y en general para casi
cualquier plataforma) es que el aspecto e incluso el funcionamiento que presente la
aplicación puede que sea diferente en un dispositivo real con respecto al que se
podía observar en un emulador. Es muy posible que su aspecto varíe según se
instale en un dispositivo u otro, así como también si lo pruebas en un emulador u
otro.

Esto se debe tanto a las características físicas del propio dispositivo (tamaño,
resolución y colores de la pantalla, tipo de mando de juegos (joystick), botones, etc.)
como a la implementación de la máquina virtual de Java que tenga ese dispositivo.
Aunque la comparación no es del todo precisa, la situación podría se similar a la que
se produce cuando navegas por un mismo sitio web con ordenadores distintos, con
sistemas operativos diferentes y con navegadores también distintos, obteniendo
visualizaciones de la web algo diferentes.

La manera más sencilla de probar tu aplicación será transfiriendo el archivo apk


generado de la aplicación a la memoria del dispositivo donde deseas realizar la
prueba (a través de un cable USB, por Bluetooth, mediante una tarjeta de memoria,
etc.).

Dependiendo del fabricante del dispositivo, es posible que se disponga de alguna


utilidad específica del fabricante que permita realizar la instalación desde el
ordenador pero también podemos disponer de utilidades no propietarias de
fabricantes de móviles. Un ejemplo de este SW para Android es adb. La forma de
hacerlo podría cambiar dependiendo del fabricante del dispositivo así como del tipo
de archivos generados (no será el mismo proceso para un iOS que para un un
Android, cada plataforma tendrá sus procedimientos específicos de instalación de
software).

En el caso de Android, será imprescindible activar la opción de Depuración por


USB. Puedes ver más información al respecto en este vídeo:
3.1.- El ciclo de vida y el administrador
de aplicaciones.

Google Developers (Uso educativo nc)

El administrador de aplicaciones o gestor de aplicaciones permite mostrar todas las


apps que tenemos instaladas en nuestro dispositivo y controlar de un vistazo las que
se está ejecutando, desinstalarlas o detenerlas, o incluso conocer en cada momento
los recursos que está consumiendo cada una de ellas. Llevará a cabo
esencialmente dos funciones:

● La gestión del ciclo de vida de las aplicaciones en el dispositivo.


● El control de los estados por los que pasa la aplicación mientras resida en la
memoria del dispositivo, es decir, mientras esté en ejecución.

El ciclo de vida de una aplicación de


Android
El ciclo de vida de una aplicación de Android pasa por cinco fases: descubrimiento,
instalación, ejecución, actualización y borrado.

● Descubrimiento (o localización). Consiste en el proceso por el cual un


usuario localiza una aplicación Android a través de su dispositivo. El gestor
de aplicaciones es el que proporciona los mecanismos necesarios para
realizar la elección de la aplicación que se desea descargar (mediante un
cable USB, Bluetooth, conexión a Internet, etc.).
● Instalación. Una vez que la aplicación ha sido descargada en el dispositivo,
ésta puede ser instalada. El gestor de aplicaciones de Android se encargará
de controlar el proceso de instalación informando al usuario de la evolución
de este proceso. Una vez instalado la aplicación, éste permanecerá en el
dispositivo (en memoria persistente) hasta que el usuario decida borrarlo.
● Ejecución. El gestor de aplicaciones de Android es también el que permite
poner en ejecución la aplicación. Una vez que una aplicación está en
ejecución, el gestor de aplicaciones también tendrá el control de los distintos
estados por los que pueda pasar dicha aplicación dependiendo de los
eventos que se vayan desencadenando durante esa ejecución.
● Actualización. Una vez que una aplicación ha sido descargada, el gestor de
aplicaciones de Android debe ser capaz de detectar si se trata de una
actualización de una aplicación ya presente en el dispositivo. En tal caso se
informaría al usuario para que decidiera si quiere llevar a cabo o no la
actualización.
● Borrado. Si el usuario así lo desea, el gestor de aplicaciones de Android se
encargará de borrar la aplicación del dispositivo. Normalmente se solicitará
confirmación y se informará de las posibles incidencias durante el proceso de
borrado.

3.2.- Modelo de estados de una


aplicación.
De manera similar a como el planificador de procesos (scheduler) en sistemas
operativos se encarga de gestionar el estado de los procesos (programas en
ejecución), el Administrador de Aplicaciones es también el encargado de gestionar
los estados de una aplicación durante su ejecución.

Cuando una aplicación se pone en ejecución es cargada en la memoria del


dispositivo mediante un proceso, entrando en funcionamiento una activity. Es
una diferencia con respecto a otros paradigmas que cargan la aplicación mediante
el método main(). El ciclo de vida de cualquier activity dependerá de cómo esté
relacionado con otras actividades, con sus tareas y con la pila de actividades que
tenga la aplicación.

Según Android Developer , los usuarios cambian el estado de los procesos de las
apps según interactúan con ellas. Los cambios en el estado del proceso van a
cambiar el estado de la activity que se está ejecutando. Básicamente estarán en tres
estados:

● Reanudada: La actividad se encuentra en el primer plano de la pantalla y


tiene la atención del usuario. (A veces, este estado también se denomina "en
ejecución").
● Pausada: Otra actividad se encuentra en el primer plano y tiene la atención
del usuario, pero esta todavía está visible. Es decir, otra actividad está visible
por encima de esta y esa actividad es parcialmente transparente o no cubre
toda la pantalla. Una actividad pausada está completamente "viva" (el objeto
Activity se conserva en la memoria, mantiene toda la información de estado y
miembro y continúa anexado al administrador de ventanas), pero el sistema
puede eliminarla en situaciones en que la memoria sea extremadamente
baja.
● Detenida: La actividad está completamente opacada por otra actividad
(ahora la actividad se encuentra en "segundo plano"). Una actividad detenida
también permanece "viva" (el objeto Activity se conserva en memoria,
mantiene toda la información de estado y miembro, pero no está anexado al
administrador de ventanas). Sin embargo, ya no está visible para el usuario y
el sistema puede eliminarla cuando necesite memoria en alguna otra parte.

Si se pausa o se detiene una actividad, el sistema puede excluirla de la memoria al


solicitarle que se cierre (llamando a su método finish()), o simplemente eliminando
su proceso. Cuando se vuelve a abrir la actividad (después de haber sido eliminada
o destruida), es necesario crearla nuevamente.

Cuando una actividad entra y sale de los diferentes estados que se describieron
más arriba, esto se notifica a través de diferentes métodos llamados callback.
Todos los métodos callback son enlaces que puedes invalidar para realizar las
tareas correspondientes cuando cambia el estado de la actividad. La siguiente
actividad de ejemplo incluye todos los métodos fundamentales del ciclo de vida.

NOTA: La implementación que realices de estos métodos del ciclo de vida siempre
debe llamar a la implementación de la superclase antes de realizar cualquier otra
tarea, como se muestra en los ejemplos.

public class ExampleActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// The activity is being created.

@Override

protected void onStart() {

super.onStart();

// The activity is about to become visible.

@Override
protected void onResume() {

super.onResume();

// The activity has become visible (it is now "resumed").

@Override

protected void onPause() {

super.onPause();

// Another activity is taking focus (this activity is about to


be "paused").

@Override

protected void onStop() {

super.onStop();

// The activity is no longer visible (it is now "stopped")

@Override

protected void onDestroy() {

super.onDestroy();

// The activity is about to be destroyed.

}
Los 3 bucles del ciclo de vida de un activity
En conjunto, estos métodos anteriores definen el ciclo de vida completo de una
actividad. Al implementar estos métodos, puedes monitorear los tres bucles
anidados en el ciclo de vida de la actividad que puedes ver representados en la
ilustración así como el camino que debe tomar una actividad entre estados. Los
rectángulos representan los métodos callback que puedes implementar para realizar
operaciones cuando la actividad cambie de estado.
● El ciclo de vida completo de una actividad transcurre entre la llamada a
onCreate() y la llamada a onDestroy(). Tu actividad debe configurar el
estado "global" (como la definición del diseño) en onCreate(), y liberar todos
los recursos restantes en onDestroy(). Por ejemplo, si hay un subproceso de
descarga de datos de la red en ejecución en segundo plano en tu actividad,
esta podría crear ese subproceso en onCreate() y luego detenerlo en
onDestroy().
● El ciclo de vida visible de una actividad transcurre entre la llamada a
onStart() y la llamada a onStop(). Durante ese tiempo, el usuario puede ver
la actividad en pantalla e interactuar con ella. Por ejemplo, se llama a
onStop() cuando se inicia una nueva actividad y esta ya no está visible. Entre
estos dos métodos, puedes conservar los recursos necesarios para mostrarle
la actividad al usuario más tarde. El sistema podría llamar a onStart() y
onStop() muchas veces durante el ciclo de vida completo de la actividad, ya
que la actividad pasa de ser visible y a estar oculta para el usuario. No uses
estos métodos para hacer acciones que sólo se realizar una vez.
● El ciclo de vida en primer plano de una actividad transcurre entre la llamada
a onResume() y la llamada a onPause(). Durante ese tiempo, la actividad se
encuentra al frente de todas las demás actividades en la pantalla y tiene el
foco en la interacción del usuario. Con frecuencia, una actividad puede entrar
y salir de primer plano, por ejemplo, se llama a onPause() cuando el
dispositivo entre en suspensión o cuando aparece un diálogo. Dado que este
estado puede cambiar con frecuencia, el código en estos métodos debe ser
bastante liviano para evitar las transiciones lentas que hacen que el usuario
deba esperar.

También podría gustarte