Android - Działania

Aktywność reprezentuje pojedynczy ekran z interfejsem użytkownika, podobnie jak okno lub ramka Java. Aktywność na Androidzie jest podklasą klasy ContextThemeWrapper.

Jeśli pracowałeś z językiem programowania C, C ++ lub Java, to na pewno widziałeś, że Twój program zaczyna się od main()funkcjonować. W bardzo podobny sposób system Android uruchamia swój program za pomocą plikuActivitypocząwszy od wywołania metody wywołania zwrotnego onCreate () . Istnieje sekwencja metod wywołania zwrotnego, które uruchamiają działanie, oraz sekwencja metod wywołania zwrotnego, które niszczą działanie, jak pokazano na poniższym diagramie cyklu życia działania: ( dzięki uprzejmości: android.com )

Klasa Activity definiuje następujące wywołania zwrotne, czyli zdarzenia. Nie musisz implementować wszystkich metod wywołania zwrotnego. Jednak ważne jest, aby zrozumieć każdy z nich i wdrożyć te, które zapewnią, że Twoja aplikacja będzie działać zgodnie z oczekiwaniami użytkowników.

Sr.No Oddzwonienie i opis
1

onCreate()

Jest to pierwsze wywołanie zwrotne wywoływane podczas tworzenia działania.

2

onStart()

To wywołanie zwrotne jest wywoływane, gdy działanie staje się widoczne dla użytkownika.

3

onResume()

Jest to wywoływane, gdy użytkownik rozpoczyna interakcję z aplikacją.

4

onPause()

Wstrzymane działanie nie otrzymuje danych wejściowych użytkownika i nie może wykonać żadnego kodu i jest wywoływane, gdy bieżące działanie jest wstrzymywane i wznawiane jest poprzednie działanie.

5

onStop()

To wywołanie zwrotne jest wywoływane, gdy działanie nie jest już widoczne.

6

onDestroy()

To wywołanie zwrotne jest wywoływane, zanim działanie zostanie zniszczone przez system.

7

onRestart()

To wywołanie zwrotne jest wywoływane po ponownym uruchomieniu działania po jego zatrzymaniu.

Przykład

Ten przykład poprowadzi Cię przez proste kroki, aby pokazać cykl życia aplikacji na Androida. Wykonaj następujące kroki, aby zmodyfikować aplikację na Androida, którą stworzyliśmy w rozdziale Hello World Example -

Krok Opis
1 Użyjesz Android Studio do stworzenia aplikacji na Androida i nadaj jej nazwę HelloWorld w pakiecie com.example.helloworld, jak wyjaśniono w rozdziale Hello World Example .
2 Zmodyfikuj główny plik aktywności MainActivity.java, jak wyjaśniono poniżej. Resztę plików nie zmieniaj.
3 Uruchom aplikację, aby uruchomić emulator Androida i zweryfikować wynik zmian wprowadzonych w aplikacji.

Poniżej znajduje się zawartość zmodyfikowanego pliku głównego działania src/com.example.helloworld/MainActivity.java. Ten plik zawiera każdą z podstawowych metod cyklu życia. PlikLog.d() została użyta do wygenerowania komunikatów dziennika -

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");
   }
}

Klasa działania ładuje cały składnik interfejsu użytkownika przy użyciu pliku XML dostępnego w folderze res / layout projektu. Poniższa instrukcja ładuje komponenty interfejsu użytkownika z pliku res / layout / activity_main.xml :

setContentView(R.layout.activity_main);

Aplikacja może mieć jedną lub więcej czynności bez żadnych ograniczeń. Każde działanie, które zdefiniujesz dla swojej aplikacji, musi być zadeklarowane w pliku AndroidManifest.xml , a główne działanie dla Twojej aplikacji musi zostać zadeklarowane w manifeście z <intent-filter>, który zawiera akcję GŁÓWNĄ i kategorię URUCHOMIENIE w następujący sposób:

<?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>

Jeśli dla jednego z działań nie została zadeklarowana akcja GŁÓWNA ani kategoria URUCHOMIENIE, ikona aplikacji nie pojawi się na liście aplikacji na ekranie głównym.

Spróbujmy uruchomić zmodyfikowany plik Hello World!aplikacja, którą właśnie zmodyfikowaliśmy. Zakładam, że stworzyłeś swójAVDpodczas konfigurowania środowiska. Aby uruchomić aplikację ze studia Android, otwórz jeden z plików aktywności projektu i kliknij

ikonę Uruchom na pasku narzędzi. Studio Android instaluje aplikację na twoim AVD i uruchamia ją, a jeśli wszystko jest w porządku z twoją konfiguracją i aplikacją, wyświetli okno emulatora i powinieneś zobaczyć następujące komunikaty dziennikaLogCat okno w 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

Spróbujmy kliknąć przycisk blokady ekranu na emulatorze Androida, a wygeneruje on następujące komunikaty o zdarzeniach w formacie LogCat okno w 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

Spróbujmy ponownie odblokować ekran na emulatorze Androida i wygeneruje następujące komunikaty o zdarzeniach w formacie LogCat okno w 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

Następnie spróbujmy ponownie kliknąć przycisk Wstecz

na emulatorze Androida, a wygeneruje on następujące komunikaty o zdarzeniach w formacieLogCat w Android Studio i kończy to Cykl Życia Aktywności dla Aplikacji 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