Android - Actividades
Una actividad representa una sola pantalla con una interfaz de usuario como una ventana o un marco de Java. La actividad de Android es la subclase de la clase ContextThemeWrapper.
Si ha trabajado con el lenguaje de programación C, C ++ o Java, entonces debe haber visto que su programa comienza desde main()función. De manera muy similar, el sistema Android inicia su programa con unaActivitycomenzando con una llamada al método de devolución de llamada onCreate () . Hay una secuencia de métodos de devolución de llamada que inician una actividad y una secuencia de métodos de devolución de llamada que destruyen una actividad como se muestra en el siguiente diagrama de ciclo de vida de la actividad: ( imagen cortesía: android.com )
La clase Activity define las siguientes devoluciones de llamada, es decir, eventos. No es necesario implementar todos los métodos de devolución de llamada. Sin embargo, es importante que comprenda cada uno e implemente aquellos que aseguren que su aplicación se comporte de la manera que esperan los usuarios.
No Señor | Devolución de llamada y descripción |
---|---|
1 | onCreate() Esta es la primera devolución de llamada y se llama cuando se crea la actividad por primera vez. |
2 | onStart() Esta devolución de llamada se llama cuando la actividad se vuelve visible para el usuario. |
3 | onResume() Se llama cuando el usuario comienza a interactuar con la aplicación. |
4 | onPause() La actividad pausada no recibe la entrada del usuario y no puede ejecutar ningún código y se llama cuando la actividad actual está en pausa y la actividad anterior se reanuda. |
5 | onStop() Esta devolución de llamada se llama cuando la actividad ya no es visible. |
6 | onDestroy() Esta devolución de llamada se llama antes de que el sistema destruya la actividad. |
7 | onRestart() Esta devolución de llamada se llama cuando la actividad se reinicia después de detenerla. |
Ejemplo
Este ejemplo lo llevará a través de sencillos pasos para mostrar el ciclo de vida de la actividad de la aplicación de Android. Siga los siguientes pasos para modificar la aplicación de Android que creamos en el capítulo Ejemplo de Hello World :
Paso | Descripción |
---|---|
1 | Utilizará Android Studio para crear una aplicación de Android y nombrarla como HelloWorld en un paquete com.example.helloworld como se explica en el capítulo Ejemplo de Hello World . |
2 | Modifique el archivo de actividad principal MainActivity.java como se explica a continuación. Mantenga el resto de los archivos sin cambios. |
3 | Ejecute la aplicación para iniciar el emulador de Android y verifique el resultado de los cambios realizados en la aplicación. |
A continuación se muestra el contenido del archivo de actividad principal modificado src/com.example.helloworld/MainActivity.java. Este archivo incluye cada uno de los métodos fundamentales del ciclo de vida. losLog.d() se ha utilizado el método para generar mensajes de registro -
package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
public class MainActivity extends Activity {
String msg = "Android : ";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(msg, "The onCreate() event");
}
/** Called when the activity is about to become visible. */
@Override
protected void onStart() {
super.onStart();
Log.d(msg, "The onStart() event");
}
/** Called when the activity has become visible. */
@Override
protected void onResume() {
super.onResume();
Log.d(msg, "The onResume() event");
}
/** Called when another activity is taking focus. */
@Override
protected void onPause() {
super.onPause();
Log.d(msg, "The onPause() event");
}
/** Called when the activity is no longer visible. */
@Override
protected void onStop() {
super.onStop();
Log.d(msg, "The onStop() event");
}
/** Called just before the activity is destroyed. */
@Override
public void onDestroy() {
super.onDestroy();
Log.d(msg, "The onDestroy() event");
}
}
Una clase de actividad carga todo el componente de la interfaz de usuario utilizando el archivo XML disponible en la carpeta res / layout del proyecto. La siguiente declaración carga los componentes de la interfaz de usuario del archivo res / layout / activity_main.xml :
setContentView(R.layout.activity_main);
Una aplicación puede tener una o más actividades sin restricciones. Cada actividad que defina para su aplicación debe declararse en su archivo AndroidManifest.xml y la actividad principal de su aplicación debe declararse en el manifiesto con un <intent-filter> que incluye la acción MAIN y la categoría LANZADOR de la siguiente manera:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.tutorialspoint7.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Si la acción PRINCIPAL o la categoría LANZADOR no se declaran para una de sus actividades, el icono de su aplicación no aparecerá en la lista de aplicaciones de la pantalla de inicio.
Intentemos ejecutar nuestro modificado Hello World!aplicación que acabamos de modificar. Supongo que habías creado tuAVDmientras realiza la configuración del entorno. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar de la barra de herramientas. Android Studio instala la aplicación en su AVD y la inicia y si todo está bien con su configuración y aplicación, mostrará la ventana Emulador y debería ver los siguientes mensajes de registro enLogCat ventana en el estudio de Android -
08-23 10:32:07.682 4480-4480/com.example.helloworld D/Android :: The onCreate() event
08-23 10:32:07.683 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:32:07.685 4480-4480/com.example.helloworld D/Android :: The onResume() event
Intentemos hacer clic en el botón de la pantalla de bloqueo en el emulador de Android y generará los siguientes mensajes de eventos en LogCat ventana en Android Studio:
08-23 10:32:53.230 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:32:53.294 4480-4480/com.example.helloworld D/Android :: The onStop() event
Intentemos nuevamente desbloquear su pantalla en el emulador de Android y generará los siguientes mensajes de eventos en LogCat ventana en el estudio de Android:
08-23 10:34:41.390 4480-4480/com.example.helloworld D/Android :: The onStart() event
08-23 10:34:41.392 4480-4480/com.example.helloworld D/Android :: The onResume() event
A continuación, intentemos de nuevo hacer clic en el botón Atrás en el emulador de Android y generará los siguientes mensajes de eventos enLogCat ventana en Android Studio y esto completa el ciclo de vida de la actividad para una aplicación de Android.
08-23 10:37:24.806 4480-4480/com.example.helloworld D/Android :: The onPause() event
08-23 10:37:25.668 4480-4480/com.example.helloworld D/Android :: The onStop() event
08-23 10:37:25.669 4480-4480/com.example.helloworld D/Android :: The onDestroy() event