Die Activity
-Klasse ist ein wichtiger Bestandteil
und die Art und Weise, wie Aktivitäten gestartet und zusammengestellt werden,
Teil des Anwendungsmodells
der Plattform ist. Anders als Programmierparadigmen
welche Apps mit einer main()
-Methode gestartet werden, die Android-
initiiert das System Code in einer Activity
-Instanz durch
zum Aufrufen bestimmter Callback-Methoden für bestimmte Phasen von
über ihren Lebenszyklus.
In diesem Dokument wird das Konzept der Aktivitäten vorgestellt und es werden einige eine kurze Anleitung zur Zusammenarbeit mit ihnen. Weitere Informationen zu Best Practices bei der Entwicklung Ihrer App Siehe Leitfaden zur Anwendungsarchitektur.
Das Konzept der Aktivitäten
Die mobile App unterscheidet sich dadurch von der Desktopversion, beginnen die Interaktionen der Nutzenden mit der App nicht immer an der gleichen Stelle. Stattdessen beginnt die User Journey oft nicht deterministisch. Wenn Sie beispielsweise eine E-Mail-App auf dem Startbildschirm öffnen, sehen Sie möglicherweise eine eine Liste der E-Mail-Adressen. Wenn Sie hingegen eine Social-Media-App verwenden, Ihre E-Mail-App startet, können Sie direkt zum Bildschirm der E-Mail-App beim Verfassen einer E-Mail.
Die Klasse Activity
wurde entwickelt, um dieses Paradigma zu vereinfachen.
Wenn eine App eine andere aufruft, ruft die aufrufende App eine Aktivität in der anderen App auf.
und nicht die App als Ganzes. So dient die Aktivität als
der Einstiegspunkt für die
Interaktion der App mit dem Nutzer ist. Sie implementieren ein
activity als abgeleitete Klasse der Activity
-Klasse.
Eine Aktivität stellt das Fenster bereit, in dem die App auf der Benutzeroberfläche. Dieses Fenster füllt normalerweise den Bildschirm aus, ist aber möglicherweise kleiner als das Bildschirm und schweben über anderen Fenstern. Im Allgemeinen einen Bildschirm in einer App implementiert. Beispielsweise kann eine der Aktivitäten einer App einen Bildschirm mit Einstellungen implementieren, während in einer anderen Aktivität den Bildschirm Foto auswählen.
Die meisten Apps umfassen mehrere Bildschirme und somit mehrere Aktivitäten. In der Regel wird eine Aktivität in einer App als Hauptaktivität activity (Aktivität). Dabei handelt es sich um den ersten Bildschirm, der erscheint, wenn der Nutzer die App startet. Jede Aktivität kann dann eine weitere Aktivität starten, verschiedene Aktionen ausführen. Die Hauptaktivität in einer einfachen E-Mail App den Bildschirm mit einem E-Mail-Posteingang anzeigen. Danach werden die wichtigsten können andere Aktivitäten gestartet werden, die Bildschirme für Aufgaben wie das Schreiben von E-Mails und das Öffnen individueller E-Mails.
Obwohl Aktivitäten zusammenwirken, um in einer kohärenten User Experience App ist jede Aktivität nur lose an die anderen Aktivitäten gebunden. es gibt in der Regel nur minimale Abhängigkeiten zwischen den Aktivitäten in einer App. Tatsächlich werden oft Aktivitäten gestartet, die zu anderen Apps gehören. Beispiel: Eine Browser-App könnte die Freigabeaktivität einer Social-Media-App starten.
Um Aktivitäten in Ihrer App zu verwenden, müssen Sie Informationen über diese Aktivitäten in im Manifest der App enthalten ist und Sie die Lebenszyklen von Aktivitäten entsprechend verwalten müssen. Im weiteren Verlauf dieses Dokuments werden diese Themen behandelt.
Manifest konfigurieren
Damit Ihre App Aktivitäten verwenden kann, müssen Sie die Aktivitäten, und bestimmte Merkmale im Manifest enthalten.
Aktivitäten deklarieren
Um deine Aktivität zu deklarieren, öffne deine Manifestdatei und füge ein <Aktivität> als untergeordnetes Element von <application> -Elements. Beispiel:
<manifest ... > <application ... > <activity android:name=".ExampleActivity" /> ... </application ... > ... </manifest >
Das einzige erforderliche Attribut für dieses Element ist android:name gibt den Klassennamen der Aktivität an. Sie können auch Attribute hinzufügen, die Aktivitätsmerkmale wie Label, Symbol oder UI-Design definieren. Weitere Informationen zu diesen und anderen Attributen finden Sie in der <Aktivität> der Referenzdokumentation.
Hinweis : Nachdem Sie Ihre App veröffentlicht haben, sollten Sie Aktivitäten nicht ändern, Namen. Andernfalls funktionieren einige Funktionen wie App-Verknüpfungen möglicherweise nicht mehr. Weitere Informationen zu Änderungen, die du nach der Veröffentlichung vermeiden solltest, findest du unter <ph type="x-smartling-placeholder"></ph> Dinge, die nicht geändert werden können.
Intent-Filter deklarieren
Intent-Filter sind eine sehr leistungsstarke Funktion der Android-Plattform. Sie ermöglichen es Ihnen, eine Aktivität zu starten, die nicht nur auf einem explicit Anfrage, aber auch implizite Anfrage. Beispiel: Eine explizite Aufforderung kann das System auffordern, die Aktivität „E-Mail senden“ zu starten in der Gmail App“. Im Gegensatz dazu teilt eine implizite Anfrage dem um in einem beliebigen die den Job machen können.“ Wenn der Nutzer über die System-UI gefragt wird, welche App verwendet werden soll bei der Durchführung einer Aufgabe, ist das ein Intent-Filter.
Sie können diese Funktion nutzen, indem Sie ein <intent-filter> im <activity>-Element enthält. Die Definition dieses Elements <action>-Element und optional, ein <category> und/oder <data> -Elements. Diese Elemente kombinieren, um den Typ des Intents anzugeben, auf den Ihre Aktivität reagieren kann. Für Das folgende Code-Snippet zeigt, wie eine Aktivität konfiguriert wird, Textdaten sendet und Anfragen von anderen Aktivitäten empfängt, um dies zu tun:
<activity android:name=".ExampleActivity" android:icon="@drawable/app_icon"> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> </activity>
In dieser
Beispiel: Die Aktion <action>
-Element gibt an, dass diese Aktivität Daten sendet.
<category> deklarieren
da DEFAULT
die Aktivität aktiviert,
um Anfragen zur Einführung zu erhalten. Das Objekt <data>
-Element gibt den Datentyp an,
die diese Aktivität senden kann. Das folgende Code-Snippet zeigt, wie die Methode
der oben beschriebenen Aktivität:
Kotlin
val sendIntent = Intent().apply { action = Intent.ACTION_SEND type = "text/plain" putExtra(Intent.EXTRA_TEXT, textMessage) } startActivity(sendIntent)
Java
// Create the text message with a string Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.setType("text/plain"); sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage); // Start the activity startActivity(sendIntent);
Erklärung von Berechtigungen
Sie können die Methode
<ph type="x-smartling-placeholder"></ph>
<activity>
-Tag, das gesteuert werden soll
welche Apps eine bestimmte Aktivität starten können. Mit einer übergeordneten Aktivität kann kein
Aktivitäten von Kindern, es sei denn, beide Aktivitäten haben in ihrem
Manifests. Wenn Sie eine
<ph type="x-smartling-placeholder"></ph>
<uses-permission>
.
-Element einer übergeordneten Aktivität muss jede untergeordnete Aktivität einen übereinstimmenden
<ph type="x-smartling-placeholder"></ph>
<uses-permission>
-Elements.
Wenn Ihre App beispielsweise eine hypothetische App namens SocialApp verwenden möchte, Um einen Beitrag in sozialen Medien zu teilen, muss SocialApp selbst die Berechtigung die eine App, die sie aufruft, Folgendes haben muss:
<manifest> <activity android:name="...." android:permission=”com.google.socialapp.permission.SHARE_POST” />
Damit Sie SocialApp aufrufen können, muss Ihre App die in den SocialApp-Manifest:
<manifest> <uses-permission android:name="com.google.socialapp.permission.SHARE_POST" /> </manifest>
Weitere Informationen zu Berechtigungen und Sicherheit im Allgemeinen finden Sie unter Sicherheit und Berechtigungen
Aktivitätslebenszyklus verwalten
Im Laufe ihrer Lebensdauer durchläuft eine Aktivität eine Reihe von Stadien. Sie verwenden eine Reihe von Callbacks, um Übergänge zwischen Zuständen zu verarbeiten. Die folgenden Abschnitte diese Callbacks vorstellen.
onCreate()
Sie müssen diesen Callback implementieren, der ausgelöst wird, wenn das System Ihre
Aktivitäten. Ihre Implementierung sollte die wesentlichen Komponenten
Ihre Aktivität: Ihre App sollte beispielsweise Ansichten erstellen und Daten an
finden Sie hier. Am wichtigsten ist, dass Sie hier
setContentView()
um das Layout für die Benutzeroberfläche der Aktivität zu definieren.
Wenn onCreate()
beendet ist,
nächster Callback ist immer onStart()
.
onStart()
Wenn onCreate()
beendet wird, wird die Aktivität
wechselt in den Status „Gestartet“ und die Aktivität wird für den Nutzer sichtbar.
Dieser Callback enthält die letzten Vorbereitungen der Aktivität für
in den Vordergrund kommen und interaktiv werden.
onResume()
Das System ruft diesen Callback auf, kurz bevor mit der Aktivität interagiert wird
mit den Nutzenden. An dieser Stelle steht die Aktivität am Anfang der Aktivität
und erfasst alle Nutzereingaben. Die meisten Hauptfunktionen einer App
in der Methode onResume()
implementiert.
Immer der onPause()
-Callback
folgt onResume()
.
onPause()
Das System ruft onPause()
auf, wenn die Aktivität verliert.
und wechselt in den Status „Pausiert“. Dieser Status tritt beispielsweise auf, wenn
auf die Schaltfläche „Zurück“ oder „Letzte“. Wenn das System einen Aufruf
onPause()
für deine Aktivität,
bedeutet das eigentlich, dass Ihre Aktivität immer noch teilweise sichtbar ist.
wenn der Nutzer die Aktivität verlässt und die Aktivität bald in den
Gestoppt oder wieder aktiviert.
Eine Aktivität im Status „Pausiert“ kann die Benutzeroberfläche weiterhin aktualisieren, wenn der Nutzer erwartet eine Aktualisierung der Benutzeroberfläche. Beispiele für solche Aktivitäten sind beispielsweise die Darstellung einer Navigation. Karten- oder Mediaplayer wiedergegeben werden. Auch wenn solche Aktivitäten den Fokus verlieren, erwartet, dass die Benutzeroberfläche weiter aktualisiert wird.
Verwenden Sie nicht
onPause()
, um die Anwendung oder den Nutzer zu speichern
Daten, Netzwerkaufrufe oder Datenbanktransaktionen.
Informationen zum Speichern von Daten finden Sie unter
Aktivitätsstatus speichern und wiederherstellen
Sobald onPause()
die Ausführung beendet hat,
ist der nächste Callback entweder onStop()
oder
onResume()
, je nachdem,
geschieht, nachdem die Aktivität in den Status „Pausiert“ gewechselt ist.
onStop()
Das System ruft onStop()
auf, wenn der
-Aktivität ist für den Nutzer nicht mehr sichtbar.
Dies kann passieren, wenn die Aktivität zerstört wird, eine neue Aktivität
oder eine bestehende Aktivität beginnt
wieder aktiviert ist und die angehaltene Aktivität verdeckt.
In all diesen Fällen wird die angehaltene Aktivität nicht mehr
überhaupt sichtbar sind.
Der nächste Callback, den das System aufruft, ist entweder
onRestart()
, wenn die
die Aktivität zurückkehrt, um mit den Nutzenden zu interagieren,
onDestroy()
wenn diese Aktivität vollständig beendet wird.
onNeustart()
Das System ruft diesen Callback auf, wenn eine Aktivität im Status Angehalten den folgenden Status aufweist:
gerade neu gestartet wird. onRestart()
stellt den Status der Aktivität ab dem Zeitpunkt wieder her, zu dem sie beendet wurde.
Auf diesen Callback folgt immer
onStart()
onDestroy()
Das System löst diesen Callback aus, bevor eine Aktivität gelöscht wird.
Dieser Callback ist der letzte, den die Aktivität erhält.
onDestroy()
ist
um sicherzustellen, dass alle Ressourcen einer Aktivität
wenn die Aktivität oder der Prozess, der sie enthält, zerstört wird.
Dieser Abschnitt dient nur als Einführung in dieses Thema. Für eine wie der Aktivitätslebenszyklus und die zugehörigen Callbacks behandelt werden. Siehe Die Aktivität Lebenszyklus: