Android - Attività
Un'attività rappresenta una singola schermata con un'interfaccia utente proprio come la finestra o il frame di Java. L'attività Android è la sottoclasse della classe ContextThemeWrapper.
Se hai lavorato con il linguaggio di programmazione C, C ++ o Java, devi aver visto che il tuo programma parte da main()funzione. In modo molto simile, il sistema Android avvia il suo programma con in un fileActivityiniziando con una chiamata al metodo di callback onCreate () . C'è una sequenza di metodi di callback che avviano un'attività e una sequenza di metodi di callback che abbattono un'attività come mostrato nel diagramma del ciclo di vita dell'attività seguente: ( immagine cortesia: android.com )
La classe Activity definisce i seguenti call back, ovvero eventi. Non è necessario implementare tutti i metodi di callback. Tuttavia, è importante comprenderli tutti e implementare quelli che garantiscono che la tua app si comporti come gli utenti si aspettano.
Suor n | Richiamata e descrizione |
---|---|
1 |
onCreate() Questa è la prima richiamata e viene chiamata quando l'attività viene creata per la prima volta. |
2 | onStart() Questa richiamata viene chiamata quando l'attività diventa visibile all'utente. |
3 | onResume() Viene chiamato quando l'utente inizia a interagire con l'applicazione. |
4 | onPause() L'attività sospesa non riceve l'input dell'utente e non può eseguire alcun codice e viene chiamata quando l'attività corrente viene sospesa e l'attività precedente viene ripresa. |
5 | onStop() Questo callback viene chiamato quando l'attività non è più visibile. |
6 | onDestroy() Questo callback viene chiamato prima che l'attività venga distrutta dal sistema. |
7 | onRestart() Questa richiamata viene chiamata quando l'attività viene riavviata dopo averla interrotta. |
Esempio
Questo esempio ti guiderà attraverso semplici passaggi per mostrare il ciclo di vita dell'attività dell'applicazione Android. Segui i seguenti passaggi per modificare l'applicazione Android che abbiamo creato nel capitolo Hello World Example -
Passo | Descrizione |
---|---|
1 | Userai Android Studio per creare un'applicazione Android e chiamarla HelloWorld nel pacchetto com.example.helloworld come spiegato nel capitolo Hello World Example . |
2 | Modificare il file di attività principale MainActivity.java come spiegato di seguito. Mantieni il resto dei file invariato. |
3 | Esegui l'applicazione per avviare l'emulatore Android e verifica il risultato delle modifiche apportate nell'applicazione. |
Di seguito è riportato il contenuto del file di attività principale modificato src/com.example.helloworld/MainActivity.java. Questo file include ciascuno dei metodi fondamentali del ciclo di vita. IlLog.d() metodo è stato utilizzato per generare messaggi di 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 classe di attività carica tutti i componenti dell'interfaccia utente utilizzando il file XML disponibile nella cartella res / layout del progetto. La seguente istruzione carica i componenti dell'interfaccia utente dal file res / layout / activity_main.xml :
setContentView(R.layout.activity_main);
Un'applicazione può avere una o più attività senza limitazioni. Ogni attività che definisci per la tua applicazione deve essere dichiarata nel tuo file AndroidManifest.xml e l'attività principale per la tua app deve essere dichiarata nel manifest con un <intent-filter> che include l'azione MAIN e la categoria LAUNCHER come segue:
<?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>
Se l'azione PRINCIPALE o la categoria LANCIO non sono dichiarate per una delle tue attività, l'icona della tua app non apparirà nell'elenco delle app della schermata Home.
Proviamo a eseguire il nostro file modificato Hello World!applicazione che abbiamo appena modificato. Presumo che tu abbia creato il tuoAVDdurante l'impostazione dell'ambiente. Per eseguire l'app da Android Studio, apri uno dei file di attività del tuo progetto e fai clic sull'icona Esegui dalla barra degli strumenti. Android Studio installa l'app sul tuo AVD e la avvia e se tutto va bene con la configurazione e l'applicazione, visualizzerà la finestra Emulator e dovresti vedere i seguenti messaggi di logLogCat finestra in Android Studio -
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
Proviamo a fare clic sul pulsante della schermata di blocco sull'emulatore Android e genererà i seguenti messaggi di eventi in formato LogCat finestra in 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
Proviamo di nuovo a sbloccare lo schermo sull'emulatore Android e genererà i seguenti messaggi di eventi in formato LogCat finestra in Android Studio:
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
Quindi, proviamo di nuovo a fare clic sul pulsante Indietro sull'emulatore Android e genererà i seguenti messaggi di eventi in formatoLogCat in Android Studio e questo completa il ciclo di vita dell'attività per un'applicazione 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