Eine Activity ist eine der grundlegenden Komponenten einer Android-App und steht typischerweise für einen einzelnen Bildschirm mit Benutzeroberfläche, etwa einen Login-Bildschirm, eine Nachrichtenliste oder eine Einstellungsseite. Jede Activity ist eine Klasse, die von Activity oder meist von AppCompatActivity oder ComponentActivity erbt, und sie muss in der AndroidManifest.xml der App registriert sein. Öffnet der Nutzer die App vom Startbildschirm aus, startet das System die Activity, die als Einstiegspunkt der App angegeben ist, und von dort aus kann die App mithilfe von Intents weitere Activities öffnen.
Eine Activity hat einen Lifecycle, den das Android-System steuert. Über Methoden wie onCreate(), onStart(), onResume(), onPause(), onStop() und onDestroy() wird die App benachrichtigt, wenn der Bildschirm erstellt wird, sichtbar wird, den Fokus verliert oder geschlossen wird, sodass Ressourcen im richtigen Moment freigegeben und Daten gespeichert werden können. Viele moderne Apps verwenden nur eine oder wenige Activities und bauen die einzelnen Bildschirme mit Fragments oder Jetpack Compose, doch die Activity bleibt das Element, das die Benutzeroberfläche der App mit dem System verbindet.
Eine Activity bezeichnet in der App-Entwicklung einen einzelnen Bildschirm in einer Android-Anwendung, der als interaktives Fenster für den Nutzer dient. Jede Activity ist für die Verarbeitung von Nutzerinteraktionen und die Darstellung von Daten zuständig, sodass Entwickler dynamische und ansprechende Nutzererlebnisse schaffen können. Activities können zusammenarbeiten, indem sie Daten untereinander weitergeben, was für eine nahtlose Navigation und Funktionalität in der App sorgt.
Mehr über Activity
Eine Activity ist eine zentrale Komponente in der Entwicklung von Android-Anwendungen und steht für einen einzelnen Bildschirm mit Benutzeroberfläche. Jede Activity ist eine abgeschlossene Einheit, die Nutzerinteraktionen verarbeitet und Daten darstellt, sodass Entwickler dynamische und ansprechende Nutzererlebnisse schaffen können. Activities sind grundlegende Bausteine von Android-Apps und dienen als Einstiegspunkte, über die Nutzer mit den Funktionen der App interagieren.
Technisch ist eine Activity eine Unterklasse der Klasse Activity im Android SDK und arbeitet mit Lifecycle-Methoden, die steuern, wie die Activity erstellt, gestartet, gestoppt und zerstört wird. Wird eine Activity gestartet, durchläuft sie eine Reihe von Lifecycle-Phasen, mit denen Entwickler Ressourcen effizient verwalten und auf Nutzerinteraktionen reagieren können. Dazu gehören Methoden wie onCreate(), onStart(), onResume(), onPause(), onStop() und onDestroy(), die jeweils dazu beitragen, ein flüssiges und reaktionsfreudiges Nutzererlebnis sicherzustellen.
Activities lassen sich auf verschiedene Arten darstellen, die jeweils unterschiedliche Arten der Interaktion unterstützen:
Vollbild: Hier fungiert die Activity als eigenständiger Bildschirm, der Nutzerinteraktionen verarbeitet und Daten darstellt. Das ist die häufigste Form, bei der der Nutzer zwischen verschiedenen Bildschirmen einer App navigiert.
Als Dialog: Mit einem Dialog-Theme wird die Activity als Dialogfenster dargestellt, das über dem aktuellen Bildschirm schwebt. Das wird mitunter genutzt, um wichtige Meldungen anzuzeigen oder Nutzereingaben abzufragen, ohne den aktuellen Kontext zu verlassen, auch wenn Dialoge häufiger mit Dialog Fragments oder Compose umgesetzt werden.
Immersiver Modus: Die Activity übernimmt die volle Kontrolle über den Bildschirm und blendet Systemleisten wie Statusleiste und Navigationsleiste aus, um ein immersives Erlebnis zu bieten. Das ist ideal für Spiele oder Medienwiedergabe, bei denen der Fokus auf den Inhalten entscheidend ist.
Eine der größten Stärken von Activities ist ihre Fähigkeit, komplexe Nutzerinteraktionen und Navigationsmuster zu bewältigen. Das Activity-Modell von Android unterstützt eine Reihe von Navigationsmustern wie den Back Stack, mit dem Nutzer zu vorherigen Bildschirmen zurücknavigieren können, was ein intuitives und vorhersehbares Nutzererlebnis schafft. Zudem können Activities mithilfe von Intents Daten teilen und miteinander kommunizieren, was eine nahtlose Integration zwischen verschiedenen Teilen einer App ermöglicht.
Activities sind zudem ressourceneffizient ausgelegt. Mit den Lifecycle-Methoden von Android können Entwickler den Ressourcenverbrauch optimieren, indem sie unnötige Ressourcen freigeben, wenn eine Activity nicht sichtbar ist, und sie neu laden, wenn sie in den Vordergrund zurückkehrt. Das trägt dazu bei, dass Apps auch auf Geräten mit begrenzten Ressourcen reaktionsfähig und effizient bleiben.
In der Praxis haben Activities die Art geprägt, wie Android-Apps gestaltet und entwickelt werden. Sie bieten einen strukturierten Ansatz für den Umgang mit Nutzerinteraktionen und Navigationsmustern, mit dem Entwickler reichhaltige und ansprechende Nutzererlebnisse schaffen können. Activities bilden den Kern vieler beliebter Apps, in denen sie genutzt werden, um Inhalte zu organisieren, Nutzereingaben zu verarbeiten und zwischen verschiedenen Funktionen zu navigieren.
Zusammenfassend sind Activities ein wesentlicher Teil der Android-Entwicklung, der Flexibilität, Effizienz und Benutzerfreundlichkeit in einer Lösung vereint, mit der Entwickler leistungsstarke und intuitive Apps schaffen können. Ihre Fähigkeit, komplexe Lifecycles und Navigationsmuster zu bewältigen, macht sie zu einem zentralen Werkzeug in der modernen App-Entwicklung, in der Nutzererlebnis und effiziente Ressourcenverwaltung entscheidend sind.
Häufig gestellte Fragen über Activity
Was ist eine Activity unter Android?
Eine Activity ist einer der grundlegenden Bausteine einer Android-App. Sie steht typischerweise für einen einzelnen Bildschirm mit Benutzeroberfläche, etwa einen Login-Bildschirm, eine Nachrichtenliste oder eine Einstellungsseite. Der Nutzer interagiert über ihre Activities mit der App.
Jede Activity ist eine Klasse, die von Activity oder häufiger von AppCompatActivity oder ComponentActivity erbt, und sie muss in der Datei AndroidManifest.xml deklariert sein. Eine Activity wird als Einstiegspunkt markiert, damit das System weiß, was geöffnet werden soll, wenn der Nutzer auf das Symbol der App tippt. Moderne Apps haben oft wenige Activities und nutzen Fragments oder Jetpack Compose, um verschiedene Bildschirme anzuzeigen.
Wie funktioniert der Lifecycle einer Activity?
Eine Activity durchläuft von ihrer Erstellung bis zu ihrem Schließen eine Reihe von Zuständen. Android ruft bestimmte Methoden auf, wenn sich der Zustand ändert. onCreate wird aufgerufen, wenn die Activity erstellt wird, und hier wird die Benutzeroberfläche eingerichtet. onStart und onResume werden aufgerufen, wenn sie sichtbar und einsatzbereit wird.
Wechselt der Nutzer zu einer anderen App oder einem anderen Bildschirm, werden onPause und onStop aufgerufen, und wird die Activity vollständig geschlossen, wird onDestroy aufgerufen. Steht der Code in den richtigen Methoden, kann die App beispielsweise ein Video stoppen, wenn es nicht sichtbar ist, und Daten speichern, bevor sie geschlossen wird. Eine falsche Handhabung kann Fehler verursachen und Ressourcen verschwenden.
Wie wechselt eine App zwischen Activities?
Eine App wechselt mithilfe eines Intent von einer Activity zu einer anderen. Ein Intent beschreibt, welche Activity geöffnet werden soll, und kann Daten enthalten, etwa die ID eines Produkts, das der neue Bildschirm anzeigen soll. Der Intent wird mit der Methode startActivity gesendet.
Die neue Activity wird oben auf einen Stapel gelegt, den sogenannten Back Stack. Drückt der Nutzer auf Zurück, wird die oberste Activity geschlossen und die vorherige wieder angezeigt. Muss der neue Bildschirm ein Ergebnis zurückgeben, etwa ein ausgewähltes Bild, wird die Activity Result API verwendet. Viele moderne Apps nutzen jedoch eine einzige Activity und die Navigation-Komponente, um innerhalb dieser zwischen Bildschirmen zu wechseln.
Was passiert mit einer Activity, wenn der Bildschirm gedreht wird?
Dreht der Nutzer das Handy, ändert sich die Konfiguration, und standardmäßig zerstört Android die aktuelle Activity und erstellt sie neu. So lässt sich ein anderes Layout laden, das zur neuen Ausrichtung passt, es bedeutet aber auch, dass Daten verloren gehen können, die nur in der Activity gehalten werden.
Um das zu vermeiden, wird typischerweise ein ViewModel verwendet, das Konfigurationsänderungen übersteht und Daten wie geladene Listen behält. Kleine Mengen an Zustand, etwa Text in einem Feld oder eine Scrollposition, lassen sich mit onSaveInstanceState oder in Jetpack Compose mit rememberSaveable speichern. Dasselbe gilt, wenn sich Sprache, Theme oder Bildschirmgröße ändern.
Was ist der Unterschied zwischen einer Activity und einem Fragment?
Eine Activity ist eine eigenständige Komponente, die dem System bekannt ist und in der AndroidManifest.xml deklariert wird. Sie dient als Container für die Benutzeroberfläche der App und kann direkt gestartet werden, etwa aus einer Benachrichtigung oder einer anderen App.
Ein Fragment ist ein kleinerer, wiederverwendbarer Teil der Benutzeroberfläche, der immer innerhalb einer Activity lebt. In derselben Activity können mehrere Fragments angezeigt werden, etwa eine Liste und eine Detailansicht nebeneinander auf einem Tablet. Fragments haben einen eigenen Lifecycle, der an die Activity gebunden ist, die sie beherbergt. Viele Apps verwenden wenige Activities und viele Fragments oder Compose-Bildschirme.
Was sind Launch Modes für eine Activity?
Launch Modes bestimmen, wie eine neue Activity beim Start im Verhältnis zu bestehenden eingeordnet wird. Standardmäßig wird jedes Mal eine neue Instanz erstellt, selbst wenn dieselbe Activity bereits geöffnet ist.
Mit singleTop wird die Activity wiederverwendet, wenn sie bereits oben auf dem Stapel liegt, statt eine neue zu erstellen. Mit singleTask existiert nur eine Instanz, und darüberliegende Activities werden entfernt, wenn sie erneut geöffnet wird. singleInstance legt die Activity in einen eigenen Task, und seit Android 12 erlaubt singleInstancePerTask eine Instanz pro Task. Launch Modes werden in der AndroidManifest.xml oder mit Flags an einem Intent angegeben und beispielsweise eingesetzt, um Duplikate zu vermeiden, wenn die App aus einer Benachrichtigung geöffnet wird.
Activity für Dummies
Eine Activity in einer App ist wie ein einzelner Bildschirm auf deinem Handy. Stell dir das wie eine Seite in einem Buch vor. Öffnest du eine App, erscheint ein Bildschirm, auf dem du etwas Bestimmtes tun kannst, etwa Nachrichten lesen, eine Nachricht schicken oder Fotos ansehen. Jeder dieser Bildschirme ist eine „Activity“. Wechselst du vom Nachrichtenlesen zum Schreiben einer Nachricht, wechselst du von einer Activity zur nächsten. So organisieren Apps verschiedene Funktionen und Informationen, damit sie leicht zu navigieren und zu benutzen sind.