<Aktivität>

Syntax:
<activity android:allowEmbedded=["true" | "false"]
          android:allowTaskReparenting=["true" | "false"]
          android:alwaysRetainTaskState=["true" | "false"]
          android:autoRemoveFromRecents=["true" | "false"]
          android:banner="drawable resource"
          android:clearTaskOnLaunch=["true" | "false"]
          android:colorMode=[ "hdr" | "wideColorGamut"]
          android:configChanges=["mcc", "mnc", "locale",
                                 "touchscreen", "keyboard", "keyboardHidden",
                                 "navigation", "screenLayout", "fontScale",
                                 "uiMode", "orientation", "density",
                                 "screenSize", "smallestScreenSize"]
          android:directBootAware=["true" | "false"]
          android:documentLaunchMode=["intoExisting" | "always" |
                                  "none" | "never"]
          android:enabled=["true" | "false"]
          android:enabledOnBackInvokedCallback=["true" | "false"]
          android:excludeFromRecents=["true" | "false"]
          android:exported=["true" | "false"]
          android:finishOnTaskLaunch=["true" | "false"]
          android:hardwareAccelerated=["true" | "false"]
          android:icon="drawable resource"
          android:immersive=["true" | "false"]
          android:label="string resource"
          android:launchMode=["standard" | "singleTop" |
                              "singleTask" | "singleInstance" | "singleInstancePerTask"]
          android:lockTaskMode=["normal" | "never" |
                              "if_whitelisted" | "always"]
          android:maxRecents="integer"
          android:maxAspectRatio="float"
          android:multiprocess=["true" | "false"]
          android:name="string"
          android:noHistory=["true" | "false"]  
          android:parentActivityName="string" 
          android:persistableMode=["persistRootOnly" | 
                                   "persistAcrossReboots" | "persistNever"]
          android:permission="string"
          android:process="string"
          android:relinquishTaskIdentity=["true" | "false"]
          android:resizeableActivity=["true" | "false"]
          android:screenOrientation=["unspecified" | "behind" |
                                     "landscape" | "portrait" |
                                     "reverseLandscape" | "reversePortrait" |
                                     "sensorLandscape" | "sensorPortrait" |
                                     "userLandscape" | "userPortrait" |
                                     "sensor" | "fullSensor" | "nosensor" |
                                     "user" | "fullUser" | "locked"]
          android:showForAllUsers=["true" | "false"]
          android:stateNotNeeded=["true" | "false"]
          android:supportsPictureInPicture=["true" | "false"]
          android:taskAffinity="string"
          android:theme="resource or theme"
          android:uiOptions=["none" | "splitActionBarWhenNarrow"]
          android:windowSoftInputMode=["stateUnspecified",
                                       "stateUnchanged", "stateHidden",
                                       "stateAlwaysHidden", "stateVisible",
                                       "stateAlwaysVisible", "adjustUnspecified",
                                       "adjustResize", "adjustPan"] >   
    ...
</activity>
enthalten in:
<application>
kann Folgendes enthalten:
<intent-filter>
<meta-data>
<layout>
description:
Deklariert eine Aktivität (eine abgeleitete Activity-Klasse), die einen Teil der visuellen Benutzeroberfläche der Anwendung implementiert. Alle Aktivitäten müssen in der Manifestdatei durch <activity>-Elemente dargestellt werden. Nicht deklarierte Elemente werden vom System nicht erkannt und nie ausgeführt.
Attribute:
android:allowEmbedded
Gibt an, dass die Aktivität als eingebettetes untergeordnetes Element einer anderen Aktivität gestartet werden kann, insbesondere wenn sich das untergeordnete Element in einem Container befindet, z. B. als Display, das zu einer anderen Aktivität gehört. Bei Aktivitäten, die für benutzerdefinierte Wear-Benachrichtigungen verwendet werden, wird dies beispielsweise deklariert, damit Wear die Aktivität in seinem Kontextstream anzeigen kann, der sich in einem anderen Prozess befindet.

Der Standardwert dieses Attributs ist false.

android:allowTaskReparenting
Gibt an, ob die Aktivität von der Aufgabe, die sie gestartet hat, zu der Aufgabe übergehen kann, für die sie eine Affinität hat, wenn diese Aufgabe das nächste Mal im Vordergrund steht. Der Wert ist "true", wenn er verschoben werden kann, und "false", wenn er bei der Aufgabe verbleibt, bei der er begonnen hat.

Wenn dieses Attribut nicht festgelegt ist, gilt der Wert des entsprechenden allowTaskReparenting-Attributs des <application>-Elements für die Aktivität. Der Standardwert ist "false".

Wenn eine Aktivität gestartet wird, wird sie normalerweise der Aufgabe der Aktivität zugeordnet, die sie gestartet hat, und bleibt dort für ihre gesamte Lebensdauer. Mit diesem Attribut können Sie erzwingen, dass sie wieder der Aufgabe übergeordnet wird, für die sie eine Affinität hat, wenn die aktuelle Aufgabe nicht mehr angezeigt wird. In der Regel werden damit die Aktivitäten einer Anwendung zur Hauptaufgabe der Anwendung verschoben.

Wenn eine E-Mail-Nachricht beispielsweise einen Link zu einer Webseite enthält, wird beim Klicken auf den Link eine Aktivität angezeigt, die die Seite anzeigen kann. Diese Aktivität wird von der Browseranwendung definiert, aber als Teil der E-Mail-Aufgabe gestartet. Wenn sie der Browseraufgabe wieder übergeordnet ist, wird angezeigt, wenn der Browser als Nächstes in den Vordergrund rückt und nicht vorhanden ist, wenn die E-Mail-Aufgabe wieder weitergeleitet wird.

Die Affinität einer Aktivität wird durch das Attribut taskAffinity definiert. Die Affinität einer Aufgabe wird durch Auslesen der Affinität ihrer Stammaktivität bestimmt. Daher befindet sich eine Stammaktivität immer in einer Aufgabe mit derselben Affinität. Da Aktivitäten mit den Startmodi "singleTask" oder "singleInstance" nur die Basis einer Aufgabe sein können, ist das erneute Parenting auf die Modi "standard" und "singleTop" beschränkt. (Siehe auch das Attribut launchMode.)

android:alwaysRetainTaskState
Gibt an, ob der Status der Aufgabe, in der sich die Aktivität befindet, immer vom System verwaltet wird. "true", wenn dies der Fall ist, und "false", wenn das System die Aufgabe in bestimmten Situationen auf ihren Anfangszustand zurücksetzen kann. Der Standardwert ist "false". Dieses Attribut ist nur für die Stammaktivität einer Aufgabe von Bedeutung. Bei allen anderen Aktivitäten wird sie ignoriert.

Normalerweise löscht das System eine Aufgabe und entfernt alle Aktivitäten aus dem Stapel oberhalb der Stammaktivität. Dies kann in bestimmten Situationen auftreten, wenn der Nutzer diese Aufgabe noch einmal auf dem Startbildschirm auswählt. In der Regel erfolgt dies, wenn der Nutzer die Aufgabe über einen bestimmten Zeitraum, z. B. 30 Minuten, nicht besucht hat.

Lautet dieses Attribut jedoch "true", kehren Nutzer immer im letzten Zustand zur Aufgabe zurück, unabhängig davon, wie sie dorthin gelangen. Dies ist in einer Anwendung wie einem Webbrowser nützlich, bei der es viele Status gibt, z. B. mehrere geöffnete Tabs, die Nutzer nicht verlieren möchten.

android:autoRemoveFromRecents
Gibt an, ob Aufgaben, die durch die Aktivität mit diesem Attribut gestartet wurden, auf dem Bildschirm „Zuletzt verwendet“ verbleiben, bis die letzte Aktivität der Aufgabe abgeschlossen ist. Wenn der Wert true lautet, wird die Aufgabe automatisch aus dem Bildschirm „Recents“ (Zuletzt verwendet) entfernt. Dadurch wird die Verwendung von FLAG_ACTIVITY_RETAIN_IN_RECENTS durch den Aufrufer überschrieben. Es muss ein boolescher Wert sein, entweder "true" oder "false".
android:banner
Eine Drawable-Ressource, die ein erweitertes grafisches Banner für das zugehörige Element bereitstellt. Verwenden Sie das Tag <activity>, um ein Standardbanner für eine bestimmte Aktivität anzugeben, oder mit dem Tag <application>, um ein Banner für alle Anwendungsaktivitäten bereitzustellen.

Das System verwendet das Banner, um eine App auf dem Android TV-Startbildschirm darzustellen. Da das Banner nur auf dem Startbildschirm angezeigt wird, wird es nur von Anwendungen mit einer Aktivität angegeben, die den Intent CATEGORY_LEANBACK_LAUNCHER verarbeitet.

Dieses Attribut wird als Verweis auf eine Drawable-Ressource festgelegt, die das Bild enthält, z. B. "@drawable/banner". Es gibt kein Standardbanner.

Weitere Informationen findest du unter Banner für den Startbildschirm bereitstellen unter „Erste Schritte mit TV-Apps“.

android:clearTaskOnLaunch
Gibt an, ob alle Aktivitäten mit Ausnahme der Stammaktivität aus der Aufgabe entfernt werden, wenn sie vom Startbildschirm neu gestartet wird. "true", wenn die Aufgabe immer auf ihre Stammaktivität entfernt wird, und "false", wenn nicht. Der Standardwert ist "false". Dieses Attribut ist nur für Aktivitäten sinnvoll, die eine neue Aufgabe – die Stammaktivität – starten. Sie wird bei allen anderen Aktivitäten in der Aufgabe ignoriert.

Wenn der Wert "true" ist, wird der Nutzer jedes Mal, wenn er die Aufgabe startet, zur Stammaktivität weitergeleitet. Dabei spielt es keine Rolle, was er zuletzt in der Aufgabe ausgeführt hat und ob er die Zurück- oder Startbildschirmtaste zum Verlassen der Aufgabe verwendet hat. Wenn der Wert "false" ist, können in einigen Situationen Aktivitäten aus der Aufgabe gelöscht werden. Dies ist jedoch nicht immer möglich. Weitere Informationen finden Sie im Abschnitt zum Attribut alwaysRetainTaskState.

Angenommen, der Nutzer startet vom Startbildschirm aus Aktivität P und wechselt von dort zu Aktivität Q. Dann tippt er auf die Startseite und kehrt zu Aktivität P zurück. Normalerweise sieht der Nutzer die Aktivität Q, da er sie zuletzt in der Aufgabe von P ausgeführt hat. Wenn P dieses Flag jedoch auf "true" setzt, werden alle zugehörigen Aktivitäten – in diesem Fall Q – entfernt, wenn der Nutzer die Aktivität P auf dem Startbildschirm startet. Die Nutzenden sehen also nur P, wenn sie zur Aufgabe zurückkehren.

Wenn sowohl dieses Attribut als auch allowTaskReparenting den Wert "true" haben, werden alle Aktivitäten, die neu übergeordnet werden können, in die Aufgabe verschoben, mit der sie eine gemeinsame Affinität haben. Die verbleibenden Aktivitäten werden dann verworfen.

Dieses Attribut wird ignoriert, wenn FLAG_ACTIVITY_RESET_TASK_IF_NEEDED nicht festgelegt ist.

android:colorMode

Gibt den Farbmodus der Aktivität an. Wenn angegeben, kann entweder hdr oder wideColorGamut sein.

Bei hdr wird die Aktivität in einem High Dynamic Range angezeigt, sofern das Gerät dies unterstützt.

Bei wideColorGamut wird angefordert, dass die Aktivität auf kompatiblen Geräten im Wide-Farbraummodus angezeigt wird. Im Wide-Farbraummodus kann ein Fenster außerhalb des SRGB-Gamuts gerendert werden, um kräftigere Farben anzuzeigen. Wenn das Gerät das Rendering des breiten Farbraums nicht unterstützt, hat dieses Attribut keine Auswirkungen. Weitere Informationen zum Rendern im breiten Farbmodus findest du unter Grafiken mit Wide-Farben-Inhalten optimieren.

android:configChanges
Listet Konfigurationsänderungen auf, die die Aktivität selbst verarbeitet. Wenn eine Konfigurationsänderung während der Laufzeit erfolgt, wird die Aktivität standardmäßig heruntergefahren und neu gestartet. Durch das Deklarieren einer Konfiguration mit diesem Attribut wird jedoch ein Neustart der Aktivität verhindert. Stattdessen wird die Aktivität weiter ausgeführt und die zugehörige onConfigurationChanged()-Methode wird aufgerufen.

Hinweis:Verwenden Sie dieses Attribut nur in speziellen Fällen, um die Leistung und Reaktionsfähigkeit von Anwendungen zu verbessern. Weitere Informationen finden Sie unter Konfigurationsänderungen verarbeiten.

Die folgenden Strings sind gültige Werte für dieses Attribut. Mehrere Werte werden durch | getrennt, z. B. "locale|navigation|orientation".

Antwort Beschreibung
"density" Eine Änderung der Anzeigedichte, z. B. wenn der Nutzer eine andere Anzeigegröße angibt oder eine andere Anzeige aktiviert, ist jetzt aktiv.

In API-Level 24 hinzugefügt

"fontScale" Eine Änderung des Faktors für die Schriftskalierung, z. B. wenn der Nutzer eine neue globale Schriftgröße auswählt.
"keyboard" Eine Änderung des Tastaturtyps, z. B. wenn der Nutzer eine externe Tastatur einschließt.
"keyboardHidden" Eine Änderung der Bedienungshilfen, z. B. wenn der Nutzer die Hardwaretastatur öffnet.
"layoutDirection" Eine Änderung der Layoutrichtung, z. B. von links nach rechts (LTR) zu rechtsläufig (RTL).

In API-Level 17 hinzugefügt

"locale" Eine Änderung der Sprache, z. B. wenn der Nutzer eine neue Sprache auswählt, in der der Text angezeigt wird.
"mcc" Eine Änderung des IMSI Mobile Country Codes (MCC), wenn eine SIM erkannt wird, mit der das Kundencenter aktualisiert wird.
"mnc" Eine Änderung des IMSI Mobile Network Code (MNC), wenn eine SIM erkannt wird, die die MNC aktualisiert.
"navigation" TA-Wechsel zum Navigationstyp (Trackball oder Steuerkreuz). Das passiert normalerweise nicht.
"orientation"

Eine Änderung der Bildschirmausrichtung, z. B. wenn der Nutzer das Gerät dreht.

Hinweis:Wenn deine App auf Android 3.2 (API-Level 13) oder höher ausgerichtet ist, musst du auch die Konfigurationen "screenLayout" und "screenSize" angeben, da sich das Bildschirmlayout und die Bildschirmgröße ändern können, wenn ein Gerät zwischen Hoch- und Querformat wechselt.

"screenLayout" Eine Änderung am Bildschirmlayout, z. B. wenn ein anderer Bildschirm aktiv wird.
"screenSize" Eine Änderung der aktuell verfügbaren Bildschirmgröße.

Das ist eine Änderung der derzeit verfügbaren Größe im Verhältnis zum aktuellen Seitenverhältnis. Sie ändert sich also, wenn der Nutzer zwischen Quer- und Hochformat wechselt.

In API-Level 13 hinzugefügt.

"smallestScreenSize" Eine Änderung der physischen Bildschirmgröße.

Dies stellt eine Größenänderung dar, unabhängig von der Ausrichtung. Sie ändert sich also nur dann, wenn sich die tatsächliche physische Bildschirmgröße ändert, z. B. wenn zu einem externen Bildschirm gewechselt wird. Eine Änderung an dieser Konfiguration entspricht einer Änderung in der smallestWidth-Konfiguration.

In API-Level 13 hinzugefügt.

"touchscreen" Der Touchscreen wurde geändert. Das passiert normalerweise nicht.
"uiMode" Eine Änderung am Benutzeroberflächenmodus, z. B. wenn der Nutzer das Gerät auf einen Schreibtisch oder ein Kfz-Dock legt, oder der Nachtmodus ändert sich. Weitere Informationen zu den verschiedenen UI-Modi finden Sie unter UiModeManager.

In API-Level 8 hinzugefügt

Alle Konfigurationsänderungen können sich auf die Ressourcenwerte auswirken, die die Anwendung sieht. Wenn onConfigurationChanged() aufgerufen wird, müssen daher in der Regel noch einmal alle Ressourcen abgerufen werden, einschließlich Ansichtslayouts und Drawables, damit die Änderung richtig verarbeitet werden kann.

Hinweis:Verwenden Sie zum Verarbeiten von Konfigurationsänderungen im Zusammenhang mit dem Mehrfenstermodus sowohl "screenLayout" als auch "smallestScreenSize". Der Mehrfenstermodus wird ab Android 7.0 (API-Level 24) unterstützt.

android:directBootAware

Ob die Aktivität Direct-Boot-bewusst ist, d. h. ob sie ausgeführt werden kann, bevor der Nutzer das Gerät entsperrt.

Hinweis : Während des direkten Starts kann eine Aktivität in Ihrer Anwendung nur auf die Daten zugreifen, die im gerätegeschützten Speicher gespeichert sind.

Der Standardwert ist "false".

android:documentLaunchMode
Gibt an, wie eine neue Instanz einer Aktivität einer Aufgabe bei jedem Start hinzugefügt wird. Dieses Attribut ermöglicht dem Nutzer, mehrere Dokumente aus derselben Anwendung auf dem Bildschirm „Zuletzt verwendet“ anzuzeigen.

Dieses Attribut hat vier Werte, die folgende Auswirkungen haben, wenn der Nutzer ein Dokument mit der Anwendung öffnet:

Antwort Beschreibung
"intoExisting" Das System sucht nach einer Aufgabe, deren ComponentName und Daten-URI des Basis-Intents mit denen des startenden Intents übereinstimmen. Wenn das System eine solche Aufgabe findet, löscht es die Aufgabe und wird neu gestartet. Dabei erhält die Stammaktivität einen Aufruf an onNewIntent(android.content.Intent). Wenn das System eine solche Aufgabe nicht findet, erstellt es eine neue Aufgabe.
"always" Bei der Aktivität wird eine neue Aufgabe für das Dokument erstellt, auch wenn das Dokument bereits geöffnet ist. Dies entspricht dem Festlegen der Flags FLAG_ACTIVITY_NEW_DOCUMENT und FLAG_ACTIVITY_MULTIPLE_TASK.
"none" Durch die Aktivität wird keine neue Aufgabe für die Aktivität erstellt. Dies ist der Standardwert, der nur dann eine neue Aufgabe erstellt, wenn FLAG_ACTIVITY_NEW_TASK festgelegt ist. Auf dem Bildschirm „Zuletzt“ wird die Aktivität wie standardmäßig behandelt: Es wird eine einzelne Aufgabe für die App angezeigt, die ab der Aktivität fortgesetzt wird, die der Nutzer zuletzt aufgerufen hat.
"never" Die Aktivität wird nicht in einem neuen Dokument gestartet, selbst wenn der Intent FLAG_ACTIVITY_NEW_DOCUMENT enthält. Mit dieser Einstellung wird das Verhalten der Flags FLAG_ACTIVITY_NEW_DOCUMENT und FLAG_ACTIVITY_MULTIPLE_TASK überschrieben, wenn eines dieser Flags in der Aktivität festgelegt ist. Auf dem Bildschirm „Recents“ (Letzte) wird eine einzelne Aufgabe für die App angezeigt, die mit der Aktivität fortgesetzt wird, die der Nutzer zuletzt aufgerufen hat.

Hinweis:Bei anderen Werten als "none" und "never" wird die Aktivität mit launchMode="standard" definiert. Wenn dieses Attribut nicht angegeben ist, wird documentLaunchMode="none" verwendet.

android:enabled
Gibt an, ob die Aktivität vom System instanziiert werden kann. Es ist "true", wenn dies möglich ist, und "false", wenn nicht. Der Standardwert ist "true".

Das Element <application> hat ein eigenes enabled-Attribut, das für alle Anwendungskomponenten einschließlich Aktivitäten gilt. Die Attribute <application> und <activity> müssen beide standardmäßig "true" sein, damit das System die Aktivität instanziieren kann. Wenn einer der beiden Werte "false" ist, kann er nicht instanziiert werden.

android:enableOnBackInvokedCallback
Mit diesem Flag können Sie vorausschauende Systemanimationen auf Aktivitätsebene aktivieren. Dieses Verhalten macht es einfacher, umfangreiche Apps mit mehreren Aktivitäten zu vorausschauenden Zurück-Gesten zu migrieren.

Wenn du android:enableOnBackInvokedCallback=false festlegst, werden vorausschauende Rückwärtsanimationen entweder auf Aktivitätsebene oder auf App-Ebene deaktiviert, je nachdem, wo du das Tag festgelegt hast. Außerdem wird das System angewiesen, Aufrufe der OnBackInvokedCallback-Plattform-API zu ignorieren.

android:excludeFromRecents
Gibt an, ob die durch diese Aktivität initiierte Aufgabe vom Bildschirm „Zuletzt“ ausgeschlossen wird. Wenn diese Aktivität also die Stammaktivität einer neuen Aufgabe ist, bestimmt dieses Attribut, ob die Aufgabe in der Liste der zuletzt verwendeten Anwendungen angezeigt wird. Es ist "true", wenn die Aufgabe aus der Liste ausgeschlossen ist,; "false", wenn sie eingeschlossen ist. Der Standardwert ist "false".

android:exported
Gibt an, ob die Aktivität von Komponenten anderer Anwendungen gestartet werden kann:

  • Bei "true" kann auf die Aktivität jeder Anwendung zugegriffen werden und sie kann über den genauen Klassennamen gestartet werden.
  • Bei "false" kann die Aktivität nur von Komponenten derselben Anwendung, Anwendungen mit derselben Nutzer-ID oder privilegierten Systemkomponenten gestartet werden. Dies ist der Standardwert, wenn keine Intent-Filter vorhanden sind.

Wenn eine Aktivität in Ihrer App Intent-Filter enthält, setzen Sie dieses Element auf "true", damit sie von anderen Apps gestartet werden kann. Das ist beispielsweise der Fall, wenn die Aktivität die Hauptaktivität der App ist und category android.intent.category.LAUNCHER enthält.

Wenn dieses Element auf "false" gesetzt ist und eine App versucht, die Aktivität zu starten, gibt das System eine ActivityNotFoundException aus.

Dieses Attribut ist nicht die einzige Möglichkeit, die Anfälligkeit einer Aktivität für andere Anwendungen zu begrenzen. Berechtigungen werden auch verwendet, um die externen Entitäten zu begrenzen, die die Aktivität aufrufen können. Siehe Attribut permission.

android:finishOnTaskLaunch
Gibt an, ob eine vorhandene Instanz der Aktivität heruntergefahren wird (mit Ausnahme der Root-Aktivität), wenn der Nutzer die Aufgabe neu startet, indem er die Aufgabe auf dem Startbildschirm auswählt. Der Wert lautet "true", wenn es heruntergefahren ist, und "false", wenn nicht. Der Standardwert ist "false".

Wenn sowohl dieses Attribut als auch allowTaskReparenting den Wert "true" haben, hat dieses Attribut Vorrang vor dem anderen. Die Affinität der Aktivität wird ignoriert. Die Aktivität wurde nicht einem neuen übergeordneten Element zugewiesen, sondern gelöscht.

Dieses Attribut wird ignoriert, wenn FLAG_ACTIVITY_RESET_TASK_IF_NEEDED nicht festgelegt ist.

android:hardwareAccelerated
Gibt an, ob hardwarebeschleunigtes Rendering für diese Aktivität aktiviert ist. "true", wenn es aktiviert ist, und "false", wenn nicht. Der Standardwert ist "false".

Unter Android 3.0 und höher steht Anwendungen ein hardwarebeschleunigter OpenGL-Renderer zur Verfügung, um die Leistung bei vielen gängigen 2D-Grafikvorgängen zu verbessern. Wenn der hardwarebeschleunigte Renderer aktiviert ist, werden die meisten Vorgänge in Canvas, Paint, Xfermode, ColorFilter, Shader und Kamera beschleunigt.

Dies führt zu flüssigeren Animationen, flüssigem Scrollen und einer insgesamt verbesserten Reaktionsfähigkeit, selbst bei Anwendungen, die die OpenGL-Bibliotheken des Frameworks nicht explizit verwenden. Ihre Anwendung verbraucht mehr RAM, da mehr Ressourcen für die Aktivierung der Hardwarebeschleunigung erforderlich sind.

Nicht alle OpenGL 2D-Vorgänge werden beschleunigt. Wenn Sie den hardwarebeschleunigten Renderer aktivieren, testen Sie, ob Ihre Anwendung ihn fehlerfrei verwenden kann.

android:icon
Ein Symbol, das die Aktivität darstellt. Es wird Nutzern angezeigt, wenn eine Darstellung der Aktivität auf dem Bildschirm erforderlich ist. Im Launcher-Fenster werden beispielsweise Symbole für Aktivitäten angezeigt, die Aufgaben initiieren. Das Symbol wird oft mit einem Label versehen. Informationen zum Label finden Sie im Attribut android:label.

Dieses Attribut wird als Verweis auf eine Drawable-Ressource festgelegt, die die Bilddefinition enthält. Wenn es nicht festgelegt ist, wird stattdessen das für die gesamte Anwendung angegebene Symbol verwendet. Weitere Informationen finden Sie im Abschnitt icon-Attribut des Elements <application>.

Das Symbol der Aktivität, ob hier oder durch das Element <application> festgelegt, ist auch das Standardsymbol für alle Intent-Filter der Aktivität. Weitere Informationen finden Sie im Attribut icon des <intent-filter>-Elements.

android:immersive
Damit wird die Einstellung für den immersiven Modus für die aktuelle Aktivität festgelegt. Wenn es "true" ist, ist für das ActivityInfo.flags-Mitglied immer das FLAG_IMMERSIVE-Bit gesetzt, auch wenn sich der immersive Modus zur Laufzeit mit der Methode setImmersive() ändert.
android:label
Ein für Nutzer lesbares Label für die Aktivität. Das Label erscheint auf dem Bildschirm, wenn die Aktivität für den Nutzer dargestellt wird. Es wird oft zusammen mit dem Aktivitätssymbol angezeigt. Wenn dieses Attribut nicht festgelegt ist, wird stattdessen der Labelsatz für die gesamte Anwendung verwendet. Weitere Informationen finden Sie im Attribut label des <application>-Elements.

Das Label der Aktivität, ob hier oder durch das Element <application> festgelegt, ist auch das Standardlabel für alle Intent-Filter der Aktivität. Weitere Informationen finden Sie im Attribut label des <intent-filter>-Elements.

Das Label wird als Verweis auf eine Stringressource festgelegt, damit es wie andere Strings in der Benutzeroberfläche lokalisiert werden kann. Der Einfachheit halber kann sie beim Entwickeln der Anwendung auch als Rohstring festgelegt werden.

android:launchMode
Eine Anleitung, wie die Aktivität gestartet wird. Es gibt fünf Modi, die in Verbindung mit Aktivitäts-Flags (FLAG_ACTIVITY_*-Konstanten) in Intent-Objekten verwendet werden, um zu bestimmen, was passiert, wenn die Aktivität zur Verarbeitung eines Intents aufgerufen wird:

"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"

Der Standardmodus ist "standard".

Wie in der folgenden Tabelle gezeigt, lassen sich die Modi in zwei Hauptgruppen unterteilen, mit den Aktivitäten "standard" und "singleTop" auf der einen und den Aktivitäten "singleTask", "singleInstance" und "singleInstancePerTask" auf der anderen. Eine Aktivität mit dem Startmodus "standard" oder "singleTop" kann mehrmals instanziiert werden.

Die Instanzen können zu einer beliebigen Aufgabe gehören und sich an einer beliebigen Stelle in der Aktivitätsaufgabe befinden. Normalerweise werden sie mit der Aufgabe startActivity() gestartet, es sei denn, das Intent-Objekt enthält eine FLAG_ACTIVITY_NEW_TASK-Anweisung. In diesem Fall wird eine andere Aufgabe ausgewählt. Weitere Informationen finden Sie unter dem Attribut taskAffinity.

Im Gegensatz dazu haben die Aktivitäten "singleTask", "singleInstance" und "singleInstancePerTask" unterschiedliches Verhalten. "singleInstancePerTask" ist immer die Stammebene der Aktivitätsaufgabe. Außerdem kann auf dem Gerät jeweils nur eine Instanz der Aktivität "singleInstance" gespeichert sein. Die Aktivität "singleInstancePerTask kann hingegen mehrmals in verschiedenen Aufgaben instanziiert werden, wenn FLAG_ACTIVITY_MULTIPLE_TASK oder FLAG_ACTIVITY_NEW_DOCUMENT festgelegt ist.

Eine Aktivität mit dem Startmodus "singleTask" kombiniert das Verhalten von "singleInstance" und "singleInstancePerTask": Die Aktivität kann mehrmals instanziiert werden und sich an einer beliebigen Stelle in einer Aufgabe derselben taskAffinity befinden. Das Gerät kann jedoch nur eine Aufgabe zum Auffinden der Aktivität "singleTask" im Stammverzeichnis der Aktivitätsaufgabe enthalten.

Die Modi "standard" und "singleTop" unterscheiden sich in einer Hinsicht: Jedes Mal, wenn es einen neuen Intent für eine "standard"-Aktivität gibt, wird eine neue Instanz der Klasse erstellt, um auf diesen Intent zu reagieren. Jede Instanz verarbeitet einen einzelnen Intent. Ebenso kann eine neue Instanz einer "singleTop"-Aktivität erstellt werden, um einen neuen Intent zu verarbeiten.

Wenn die Zielaufgabe jedoch bereits eine Instanz der Aktivität an der Spitze des Stacks hat, erhält diese Instanz den neuen Intent in einem onNewIntent()-Aufruf. Es wird keine neue Instanz erstellt. Andernfalls wird eine neue Instanz erstellt und in den Stack verschoben, wenn sich eine vorhandene Instanz der Aktivität "singleTop" in der Zielaufgabe, aber nicht an oberster Position im Stack befindet, oder wenn sie sich ganz oben in einem Stack befindet, aber nicht in der Zielaufgabe.

Wenn der Nutzer zu einer Aktivität im aktuellen Stack navigiert, wird das Verhalten ebenfalls durch den Startmodus der übergeordneten Aktivität bestimmt. Wenn die übergeordnete Aktivität den Startmodus singleTop hat oder der Intent up FLAG_ACTIVITY_CLEAR_TOP enthält, wird die übergeordnete Aktivität an den Anfang des Stacks gesetzt und ihr Status beibehalten.

Der Navigations-Intent wird von der Methode onNewIntent() der übergeordneten Aktivität empfangen. Wenn die übergeordnete Aktivität den Startmodus standard hat und der Intent up nicht FLAG_ACTIVITY_CLEAR_TOP enthält, heben sich die aktuelle Aktivität und die übergeordnete Aktivität aus dem Stapel heraus. Es wird dann eine neue Instanz der übergeordneten Aktivität erstellt, um den Navigations-Intent zu empfangen.

Der Modus "singleInstance" unterscheidet sich auch nur in einem Punkt von "singleTask" und "singleInstancePerTask": Bei einer Aktivität mit dem Startmodus "singleTask" oder "singleInstancePerTask" können andere Aktivitäten, unbedingt die Aktivitäten "standard" und "singleTop", Teil der Aufgabe sein.

Bei einer "singleInstance"-Aktivität ist dagegen keine andere Aktivität Teil der Aufgabe. Es muss sich um die einzige Aktivität in der Aufgabe handeln. Wird eine andere Aktivität gestartet, wird diese Aktivität einer anderen Aufgabe zugewiesen, so als wäre FLAG_ACTIVITY_NEW_TASK im Intent enthalten.

Anwendungsfälle Startmodus Mehrere Instanzen? Kommentare
Normale Starts für die meisten Aktivitäten "standard" Ja Standard: Das System erstellt immer eine neue Instanz der Aktivität in der Zielaufgabe und leitet den Intent an diese weiter.
"singleTop" Bedingt Wenn oben in der Zielaufgabe bereits eine Instanz der Aktivität vorhanden ist, leitet das System den Intent über einen Aufruf der Methode onNewIntent() an diese Instanz weiter, anstatt eine neue Instanz der Aktivität zu erstellen.
Spezialisierte Markteinführungen
(nicht für die allgemeine Verwendung empfohlen)
"singleTask" Bedingt Das System erstellt die Aktivität an der Wurzel einer neuen Aufgabe oder findet die Aktivität zu einer vorhandenen Aufgabe mit derselben Affinität. Wenn eine Instanz der Aktivität bereits vorhanden ist und sich am Stamm der Aufgabe befindet, leitet das System den Intent über einen Aufruf der Methode onNewIntent() an die vorhandene Instanz weiter, anstatt eine neue zu erstellen.
"singleInstance" Nein Wie "singleTask", mit der Ausnahme, dass das System keine anderen Aktivitäten in die Aufgabe startet, die die Instanz enthält. Die Aktivität ist immer das einzige Mitglied ihrer Aufgabe.
"singleInstancePerTask" Bedingt Die Aktivität kann nur als Stammaktivität der Aufgabe ausgeführt werden, also als erste Aktivität, mit der die Aufgabe erstellt wurde. Daher gibt es nur eine Instanz dieser Aktivität in einer Aufgabe. Die Aktivität kann jedoch mehrmals in verschiedenen Aufgaben instanziiert werden.

Wie in der vorherigen Tabelle gezeigt, ist "standard" der Standardmodus und eignet sich für die meisten Arten von Aktivitäten. "singleTop" ist außerdem ein gängiger und nützlicher Startmodus für viele Arten von Aktivitäten. Die anderen Modi "singleTask", "singleInstance" und "singleInstancePerTask" sind für die meisten Anwendungen nicht geeignet. Sie führen zu einem Interaktionsmodell, das Nutzern wahrscheinlich nicht bekannt ist und sich stark von den meisten anderen Anwendungen unterscheidet.

Unabhängig vom gewählten Startmodus sollten Sie unbedingt die Usability der Aktivität beim Start testen und wenn Sie mit der Schaltfläche „Zurück“ von anderen Aktivitäten und Aufgaben zu ihr zurückkehren.

Weitere Informationen zu Startmodi und ihrer Interaktion mit Intent-Flags finden Sie unter Aufgaben und Back-Stack.

android:lockTaskMode
Bestimmt, wie das System diese Aktivität darstellt, wenn das Gerät im Sperraufgabenmodus ausgeführt wird.

Android kann Aufgaben in einem immersiven, kioskähnlichen Modus ausführen, der als Modus zum Sperren von Aufgaben bezeichnet wird. Wenn das System im Sperrmodusmodus ausgeführt wird, können Gerätenutzer normalerweise keine Benachrichtigungen sehen, nicht auf Apps zugreifen, die nicht auf der Zulassungsliste stehen, und auch nicht zum Startbildschirm zurückkehren, es sei denn, die Home App ist auf der Zulassungsliste.

Nur Apps, die von einem Device Policy Controller (DPC) auf die Zulassungsliste gesetzt wurden, können ausgeführt werden, wenn sich das System im Sperrbildschirmmodus befindet. Systemanwendungen und privilegierte Anwendungen können jedoch im Modus für Sperraufgaben ausgeführt werden, ohne auf die Zulassungsliste gesetzt zu werden.

Der Wert kann einer der folgenden R.attr.lockTaskMode-Stringwerte sein:

Antwort Beschreibung
"normal" Standardwert. Das ist der Standardwert. Aufgaben werden nicht im Modus zum Sperren von Aufgaben gestartet, können aber durch Aufrufen von startLockTask() dorthin platziert werden.
"never"

Tasks wird nicht im lockTask-Modus gestartet und der Gerätenutzer kann sie nicht auf dem Bildschirm „Zuletzt“ anpinnen.

Hinweis:Dieser Modus ist nur für Systemanwendungen und privilegierte Anwendungen verfügbar. Apps ohne Berechtigungen mit diesem Wert werden als normal behandelt.

"if_whitelisted" Wenn der DPC dieses Paket mit DevicePolicyManager.setLockTaskPackages() autorisiert, ist dieser Modus mit always identisch, mit der Ausnahme, dass die Aktivität stopLockTask() aufrufen muss, bevor sie abgeschlossen werden kann, wenn es die letzte gesperrte Aufgabe ist. Wenn der DPC dieses Paket nicht autorisiert, ist dieser Modus mit normal identisch.
"always"

Aufgaben, die auf dieser Aktivität basieren, werden immer im Modus „gesperrte Aufgabe“ gestartet. Wenn sich das System beim Starten dieser Aufgabe bereits im Modus zum Sperren der Aufgabe befindet, wird die neue Aufgabe über der aktuellen Aufgabe gestartet. Aufgaben, die in diesem Modus gestartet werden, können durch Aufrufen von finish() den Modus zum Sperren von Aufgaben beenden.

Hinweis:Dieser Modus ist nur für Systemanwendungen und privilegierte Anwendungen verfügbar. Apps ohne Berechtigungen mit diesem Wert werden als normal behandelt.

Dieses Attribut wurde mit API-Level 23 eingeführt.

android:maxRecents
Die maximale Anzahl von Aufgaben, die auf dieser Aktivität im Bildschirm „Zuletzt“ basieren. Wenn diese Anzahl von Einträgen erreicht ist, entfernt das System die am wenigsten verwendete Instanz aus dem Bildschirm „Recents“. Gültige Werte sind Ganzzahlen von 1 bis 50 oder zwischen 1 und 25 auf Geräten mit geringem Arbeitsspeicher. Null ist ungültig. Der Standardwert ist 16.
android:maxAspectRatio

Das von der Aktivität unterstützte maximale Seitenverhältnis. Wenn die App auf einem Gerät mit einem breiteren Seitenverhältnis ausgeführt wird, fügt das System automatisch die Letterbox-Frequenz der App ein. Teile des Bildschirms bleiben dabei ungenutzt, sodass die App mit dem angegebenen maximalen Seitenverhältnis ausgeführt werden kann.

Das maximale Seitenverhältnis wird als Dezimalform des Quotienten aus der längeren Abmessungen des Geräts geteilt durch seine kürzere Dimension ausgedrückt. Wenn das maximale Seitenverhältnis beispielsweise 7:3 ist, legen Sie den Wert dieses Attributs auf 2,33 fest.

Auf Nicht-Wearable-Geräten muss der Wert dieses Attributs mindestens 1, 33 betragen. Auf Wearable-Geräten muss die Version 1.0 oder höher sein. Andernfalls ignoriert das System den festgelegten Wert.

Hinweis : Dieses Attribut wird ignoriert, wenn für die Aktivität resizeableActivity auf „true“ gesetzt ist. Das bedeutet, dass Ihre Aktivität jede Größe unterstützt.

Weitere Informationen zu diesem Attribut finden Sie unter Maximales Seitenverhältnis deklarieren.

android:multiprocess
Gibt an, ob eine Instanz der Aktivität im Prozess der Komponente gestartet werden kann, die sie gestartet hat. Ist dies der Fall, ist es "true", andernfalls "false". Der Standardwert ist "false".

Normalerweise wird eine neue Instanz einer Aktivität in den Prozess der Anwendung, die sie definiert hat, gestartet, sodass alle Instanzen der Aktivität im selben Prozess ausgeführt werden. Wenn dieses Flag jedoch auf "true" gesetzt ist, können Instanzen der Aktivität in mehreren Prozessen ausgeführt werden, sodass das System Instanzen überall dort erstellen kann, wo sie verwendet werden, sofern dies mit den erforderlichen Berechtigungen der Fall ist. Dies ist fast nie notwendig oder wünschenswert.

android:name
Der Name der Klasse, die die Aktivität implementiert (eine abgeleitete Klasse von Activity). Der Attributwert ist normalerweise ein voll qualifizierter Klassenname wie "com.example.project.ExtracurricularActivity". Kurz gesagt: Wenn das erste Zeichen des Namens ein Punkt wie ".ExtracurricularActivity" ist, wird es an den in der Datei build.gradle angegebenen Namespace angehängt.

Nachdem Sie Ihre Anwendung veröffentlicht haben, ändern Sie diesen Namen nicht, es sei denn, Sie legen android:exported="false" fest. Es gibt keine Standardeinstellung. Der Name muss angegeben werden.

android:noHistory
Gibt an, ob die Aktivität durch Aufrufen der finish()-Methode aus dem Aktivitätsstapel entfernt und abgeschlossen wird, wenn der Nutzer die Aktivität verlässt und sie nicht mehr auf dem Bildschirm sichtbar ist. Der Wert ist "true", wenn er abgeschlossen ist, und "false", wenn nicht. Der Standardwert ist "false".

Der Wert "true" bedeutet, dass die Aktivität keinen Verlaufs-Trace hinterlässt. Sie verbleibt nicht im Aktivitätsstapel für die Aufgabe, sodass der Nutzer nicht zu ihr zurückkehren kann. In diesem Fall wird onActivityResult() nie aufgerufen, wenn Sie eine andere Aktivität für ein Ergebnis aus dieser Aktivität starten.

Dieses Attribut wurde in API-Level 3 eingeführt.

android:parentActivityName
Der Klassenname des logischen übergeordneten Elements der Aktivität. Der hier angegebene Name muss mit dem Klassennamen übereinstimmen, der dem android:name-Attribut des entsprechenden <activity>-Elements zugewiesen ist.

Das System liest dieses Attribut, um zu bestimmen, welche Aktivität gestartet werden soll, wenn der Nutzer in der Aktionsleiste auf die Schaltfläche „Nach oben“ tippt. Das System kann diese Informationen außerdem verwenden, um einen Back-Stack von Aktivitäten mit TaskStackBuilder zu synthetisieren.

Zur Unterstützung der API-Ebenen 4 bis 16 können Sie die übergeordnete Aktivität auch mit einem <meta-data>-Element deklarieren, das einen Wert für "android.support.PARENT_ACTIVITY" angibt:

<activity
    android:name="com.example.app.ChildActivity"
    android:label="@string/title_child_activity"
    android:parentActivityName="com.example.app.MainActivity" >
    <!-- Parent activity meta-data to support API level 4+ -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.app.MainActivity" />
</activity>

Weitere Informationen dazu, wie die übergeordnete Aktivität für die Nach oben-Navigation deklariert wird, finden Sie unter Aufwärtsnavigation bereitstellen.

Dieses Attribut wurde mit API-Level 16 eingeführt.

android:persistableMode

Definiert, wie eine Instanz einer Aktivität bei Geräteneustarts innerhalb einer beinhaltenden Aufgabe beibehalten wird.

Wenn die Stammaktivität einer Aufgabe den Wert dieses Attributs auf persistRootOnly setzt, wird nur die Stammaktivität beibehalten. Andernfalls werden die Aktivitäten untersucht, die sich weiter oben im Back-Stack der Aufgabe befinden. Alle Aktivitäten, die den Wert dieses Attributs auf persistAcrossReboots gesetzt haben, bleiben erhalten.

Wenn Sie dieses Attribut verwenden, müssen Sie dessen Wert auf einen der folgenden Werte festlegen:

Antwort Beschreibung
persistRootOnly Standardwert. Wenn das System neu gestartet wird, wird die Aktivitätsaufgabe beibehalten, aber nur der Start-Intent der Stammaktivität wird verwendet.

Wenn der Start-Intent Ihrer App die Stammaktivität Ihrer App lädt, empfängt die Aktivität kein PersistableBundle-Objekt. Verwende onSaveInstanceState() daher nicht, um den Status der Stammaktivität deiner App nach einem Geräteneustart beizubehalten.

Hinweis : Dieser Attributwert wirkt sich nur dann auf das Verhalten Ihrer App aus, wenn er für die Stammaktivität Ihrer App festgelegt ist.

persistAcrossReboots

Der Status dieser Aktivität wird beibehalten, zusammen mit dem Status jeder Aktivität weiter oben im Back-Stack, für die das eigene persistableMode-Attribut auf persistAcrossReboots gesetzt ist. Wenn eine Aktivität kein persistableMode-Attribut hat, das auf persistAcrossReboots gesetzt ist, oder wenn sie mit dem Flag Intent.FLAG_ACTIVITY_NEW_DOCUMENT gestartet wird, werden diese Aktivität und alle Aktivitäten weiter oben im Back-Stack nicht beibehalten.

Wenn ein Intent eine Aktivität lädt, deren persistableMode-Attribut in der App auf persistAcrossReboots gesetzt ist, empfängt die Aktivität ein PersistableBundle-Objekt in ihrer onCreate()-Methode. Daher können Sie onSaveInstanceState() verwenden, um den Status einer Aktivität über einen Geräteneustart hinweg beizubehalten, solange das Attribut persistableMode auf persistAcrossReboots gesetzt ist.

Hinweis : Dieser Attributwert wirkt sich auch dann auf das Verhalten Ihrer App aus, wenn er für eine andere Aktivität als die Stammaktivität der App festgelegt ist.

persistNever

Der Status der Aktivität wird nicht beibehalten.

Hinweis : Dieser Attributwert wirkt sich nur dann auf das Verhalten Ihrer App aus, wenn er für die Stammaktivität Ihrer App festgelegt ist.

Dieses Attribut wurde mit API-Level 21 eingeführt.

android:permission
Der Name einer Berechtigung, die Clients haben müssen, um die Aktivität zu starten oder anderweitig dazu zu bringen, auf einen Intent zu reagieren. Wenn einem Aufrufer von startActivity() oder startActivityForResult() die angegebene Berechtigung nicht gewährt wird, wird sein Intent nicht an die Aktivität übergeben.

Wenn dieses Attribut nicht festgelegt ist, gilt die durch das Attribut permission des Elements <application> festgelegte Berechtigung für die Aktivität. Wenn keines der beiden Attribute festgelegt ist, ist die Aktivität nicht durch eine Berechtigung geschützt.

Weitere Informationen zu Berechtigungen finden Sie in der Übersicht über das App-Manifest im Abschnitt Berechtigungen und in den Sicherheitstipps.

android:process
Der Name des Prozesses, in dem die Aktivität ausgeführt wird. Normalerweise werden alle Komponenten einer Anwendung unter einem Standardprozessnamen ausgeführt, der für die Anwendung erstellt wurde. Sie müssen dieses Attribut nicht verwenden. Bei Bedarf können Sie jedoch den Standardprozessnamen mit diesem Attribut überschreiben, um Ihre Anwendungskomponenten auf mehrere Prozesse zu verteilen.

Wenn der diesem Attribut zugewiesene Name mit einem Doppelpunkt (:) beginnt, wird bei Bedarf ein neuer, für die Anwendung privater Prozess erstellt und die Aktivität wird in diesem Prozess ausgeführt.

Wenn der Prozessname mit einem Kleinbuchstaben beginnt, wird die Aktivität in einem globalen Prozess dieses Namens ausgeführt, sofern sie dazu berechtigt ist. Dadurch können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, wodurch die Ressourcennutzung reduziert wird.

Über das Attribut process des <application>-Elements kann für alle Komponenten ein anderer Standardprozessname festgelegt werden.

android:relinquishTaskIdentity
Gibt an, ob die Aktivität ihre Aufgabenkennungen auf eine übergeordnete Aktivität im Aufgabenstapel gibt. Eine Aufgabe, deren Stammaktivität dieses Attribut auf "true" festgelegt hat, ersetzt die Basis-Intent durch die der nächsten Aktivität in der Aufgabe.

Wenn dieses Attribut der nächsten Aktivität ebenfalls auf "true" gesetzt ist, wird die Basis-Intent für jede Aktivität zurückgegeben, die in derselben Aufgabe gestartet wird. Dies wird für jede Aktivität so lange fortgesetzt, bis eine Aktivität erkannt wird, bei der dieses Attribut auf "false" gesetzt ist. Der Standardwert ist "false".

Wenn dieses Attribut auf "true" gesetzt ist, kann die ActivityManager.TaskDescription auch verwendet werden, um Labels, Farben und Symbole auf dem Bildschirm „Zuletzt verwendet“ zu ändern.

android:resizeableActivity

Gibt an, ob die App den Mehrfenstermodus unterstützt. Sie können dieses Attribut entweder im <activity>- oder im <application>-Element festlegen.

Wenn dieses Attribut auf "true" gesetzt ist, kann der Nutzer die Aktivität im geteilten Bildschirmmodus und im freien Format starten. Wenn Sie das Attribut auf "false" setzen, kann die App nicht für eine Mehrfensterumgebung getestet oder optimiert werden. Das System kann die Aktivität trotzdem in den Mehrfenstermodus mit angewendetem Kompatibilitätsmodus versetzen.

Wenn du dieses Attribut auf "false" setzt, bedeutet dies nicht, dass keine anderen Apps im Mehrfenstermodus auf dem Bildschirm sichtbar sind, z. B. als Bild im Bild oder auf anderen Displays. Daher bedeutet das Festlegen dieses Flags nicht, dass die Anwendung exklusiven Ressourcenzugriff hat.

Wenn deine App auf API-Level 24 oder höher ausgerichtet ist und du keinen Wert für dieses Attribut angibst, wird der Attributwert standardmäßig auf "true" verwendet.

Wenn deine App auf API-Level 31 oder höher ausgerichtet ist, funktioniert dieses Attribut auf kleinen und großen Bildschirmen unterschiedlich:

  • Große Bildschirme (sw >= 600 dp): Alle Apps unterstützen den Mehrfenstermodus. Das Attribut gibt an, ob die Größe einer App angepasst werden kann, nicht, ob die App den Mehrfenstermodus unterstützt. Wenn resizeableActivity="false" ist, wird die App bei Bedarf in den Kompatibilitätsmodus versetzt, um die Anzeigeabmessungen anzupassen.
  • Kleine Bildschirme (sw < 600 dp): Wenn resizeableActivity="true" und die Mindestbreite und -höhe der Aktivität innerhalb der Anforderungen für den Mehrfenstermodus liegen, unterstützt die App den Mehrfenstermodus. Bei resizeableActivity="false" unterstützt die App den Mehrfenstermodus unabhängig von der Mindestbreite und -höhe der Aktivität nicht.

Hinweis:Gerätehersteller können das Verhalten von API-Level 31 überschreiben.

Dieses Attribut wurde in API-Level 24 hinzugefügt.

Hinweis: Der Wert der Stammaktivität einer Aufgabe wird auf alle zusätzlichen Aktivitäten angewendet, die in der Aufgabe gestartet werden. Wenn also die Größe der Stammaktivität einer Aufgabe geändert werden kann, behandelt das System alle anderen Aktivitäten in der Aufgabe als veränderbar. Wenn die Größe der Stammaktivität nicht angepasst werden kann, lässt sich die Größe der anderen Aktivitäten in der Aufgabe nicht anpassen.

android:screenOrientation

Ausrichtung der Aktivität auf dem Gerätedisplay.

Unter Android 7.0 (API-Level 24) und höher ignoriert das System Laufzeitänderungen an diesem Attribut, wenn die Aktivität im Mehrfenstermodus stattfindet.

Unter Android 12 (API-Level 31) und höher können Gerätehersteller einzelne Gerätebildschirme (z. B. das Display eines faltbaren Tablets) so konfigurieren, dass die Spezifikation für die Ausrichtung ignoriert wird. Außerdem wird erzwungen, dass eine als Hochformat angegebene App aufrecht, aber auf Displays im Querformat im Letterbox-Format dargestellt wird. Dadurch wird sichergestellt, dass die App weiterhin ein Hochformat hat, aber die App für eine bessere Nutzerfreundlichkeit ausgerichtet wird.

Der Wert kann einer der folgenden Strings sein:

"unspecified" Der Standardwert. Die Ausrichtung wird vom System ausgewählt. Die verwendete Richtlinie und daher die in bestimmten Kontexten getroffenen Entscheidungen können von Gerät zu Gerät unterschiedlich sein.
"behind" Die gleiche Ausrichtung wie die Aktivität, die sich im Aktivitätsstapel unmittelbar darunter befindet.
"landscape" Querformat: Der Bildschirm ist breiter als hoch.
"portrait" Hochformat: Der Bildschirm ist höher als breit.
"reverseLandscape" Querformat entgegengesetzt zum normalen Querformat. In API-Level 9 hinzugefügt.
"reversePortrait" Hochformat in entgegengesetzter Richtung vom normalen Hochformat. In API-Level 9 hinzugefügt.
"sensorLandscape" Querformat, je nach Gerätesensor jedoch entweder normales oder umgekehrtes Querformat Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. In API-Level 9 hinzugefügt.
"sensorPortrait" Hochformat, aber je nach Gerätesensor entweder normal oder umgekehrt. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. Je nach Gerätekonfiguration ist das Drehen auf dem Kopf jedoch möglicherweise nicht zulässig. In API-Level 9 hinzugefügt.
"userLandscape" Querformat, aber je nach Gerätesensor und Nutzerpräferenz entweder normales oder umgekehrtes Querformat. In API-Level 18 hinzugefügt.
"userPortrait" Hochformat, aber je nach Gerätesensor und Nutzerpräferenz entweder normal oder umgekehrt. Je nach Gerätekonfiguration ist das Drehen um den Kopf jedoch möglicherweise nicht zulässig. In API-Level 18 hinzugefügt.
"sensor" Der Sensor für die Geräteausrichtung bestimmt die Ausrichtung. Die Ausrichtung des Displays hängt davon ab, wie der Nutzer das Gerät hält. Sie ändert sich, wenn der Nutzer das Gerät dreht. Einige Geräte drehen sich jedoch nicht standardmäßig in alle vier möglichen Ausrichtungen. Wenn Sie alle vier Ausrichtungen verwenden möchten, verwenden Sie "fullSensor". Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat.
"fullSensor" Der Sensor für die Geräteausrichtung bestimmt die Ausrichtung für jede der vier Ausrichtungen. Dies ähnelt "sensor", mit dem Unterschied, dass jede der vier möglichen Bildschirmausrichtungen zulässig ist, unabhängig davon, was das Gerät normalerweise unterstützt. Beispielsweise verwenden einige Geräte normalerweise kein umgekehrtes Hoch- oder umgekehrtes Querformat, diese Ausrichtungen werden jedoch aktiviert. In API-Level 9 hinzugefügt.
"nosensor" Die Ausrichtung wird ohne Bezug auf einen physischen Ausrichtungssensor bestimmt. Der Sensor wird dabei ignoriert, d. h., das Display dreht sich nicht je nachdem, wie der Nutzer das Gerät bewegt.
"user" Die aktuelle bevorzugte Ausrichtung des Nutzers.
"fullUser" Wenn der Nutzer die sensorbasierte Drehung gesperrt hat, verhält er sich genauso wie user, andernfalls verhält er sich wie fullSensor und lässt jede der vier möglichen Bildschirmausrichtungen zu. In API-Level 18 hinzugefügt.
"locked" Sperrt die Ausrichtung auf die aktuelle Rotation, was auch immer der Fall ist. In API-Level 18 hinzugefügt.

Hinweis: Wenn Sie einen der Werte für das Quer- oder Hochformat angeben, ist dies eine harte Anforderung an die Ausrichtung, in der die Aktivität ausgeführt wird. Der von Ihnen angegebene Wert ermöglicht das Filtern nach Diensten wie Google Play, sodass Ihre App nur für Geräte verfügbar ist, die die für Ihre Aktivitäten erforderliche Ausrichtung unterstützen. Wenn Sie beispielsweise "landscape", "reverseLandscape" oder "sensorLandscape" angeben, ist Ihre Anwendung nur für Geräte verfügbar, die Querformat unterstützen.

Deklarieren Sie außerdem explizit, dass Ihre Anwendung entweder das Hoch- oder Querformat benötigt, mit dem Element <uses-feature>, z. B. <uses-feature android:name="android.hardware.screen.portrait"/>. Dies ist ein Filterverhalten von Google Play und anderen Diensten, die es unterstützen. Die Plattform selbst steuert nicht, ob deine App installiert werden kann, wenn ein Gerät nur bestimmte Ausrichtungen unterstützt.

android:showForAllUsers

Gibt an, ob die Aktivität angezeigt wird, wenn sich der aktuelle Nutzer des Geräts von dem Nutzer unterscheidet, der die Aktivität gestartet hat. Sie können für dieses Attribut einen Literalwert wie "true" oder "false" oder ein Ressourcen- oder Themenattribut festlegen, das einen booleschen Wert enthält.

Dieses Attribut wurde in API-Level 23 hinzugefügt.

android:stateNotNeeded
Gibt an, ob die Aktivität beendet und erfolgreich neu gestartet werden kann, ohne ihren Status zu speichern. Der Wert ist "true", wenn er ohne Verweis auf seinen vorherigen Status neu gestartet werden kann, und "false", wenn der vorherige Status erforderlich ist. Der Standardwert ist "false".

Bevor eine Aktivität vorübergehend heruntergefahren wird, um Ressourcen zu sparen, wird normalerweise ihre Methode onSaveInstanceState() aufgerufen. Mit dieser Methode wird der aktuelle Status der Aktivität in einem Bundle-Objekt gespeichert, das beim Neustart der Aktivität an onCreate() übergeben wird. Wenn dieses Attribut auf "true" gesetzt ist, wird onSaveInstanceState() möglicherweise nicht aufgerufen und onCreate() wird null anstelle von Bundle übergeben, da dies beim ersten Start der Aktivität der Fall ist.

Die Einstellung "true" bedeutet, dass die Aktivität ohne Beibehalten des Status neu gestartet werden kann. Beispielsweise wird für die Aktivität, die den Startbildschirm anzeigt, diese Einstellung verwendet, um sicherzustellen, dass die Aktivität nicht entfernt wird, wenn sie aus irgendeinem Grund abstürzt.

android:supportsPictureInPicture

Gibt an, ob die Aktivität die Bild-im-Bild-Anzeige unterstützt.

android:taskAffinity
Die Aufgabe, für die die Aktivität eine Affinität hat. Aktivitäten mit derselben Affinität gehören konzeptionell zur selben Aufgabe und aus der Sicht des Nutzers derselben "Anwendung". Die Affinität einer Aufgabe wird durch die Affinität ihrer Stammaktivität bestimmt.

Die Affinität bestimmt zwei Dinge: die Aufgabe, der die Aktivität neu übergeordnet ist (siehe Attribut allowTaskReparenting), und die Aufgabe, die die Aktivität enthält, wenn sie mit dem Flag FLAG_ACTIVITY_NEW_TASK gestartet wird.

Standardmäßig haben alle Aktivitäten in einer Anwendung dieselbe Affinität. Sie können dieses Attribut festlegen, um sie unterschiedlich zu gruppieren und sogar Aktivitäten zu platzieren, die in verschiedenen Anwendungen innerhalb derselben Aufgabe definiert sind. Wenn Sie angeben möchten, dass die Aktivität keine Affinität für eine Aufgabe hat, geben Sie einen leeren String an.

Wenn dieses Attribut nicht festgelegt ist, übernimmt die Aktivität den für die Anwendung festgelegten Affinitätssatz. Weitere Informationen finden Sie im Attribut taskAffinity des Elements <application>. Der Name der Standardaffinität für eine Anwendung ist der in der Datei build.gradle festgelegte Namespace.

android:theme
Ein Verweis auf eine Stilressource, die ein Gesamtthema für die Aktivität definiert. Dadurch wird der Kontext der Aktivität automatisch so festgelegt, dass diese theme verwendet wird. Außerdem können vor dem Start der Aktivität „Start“-Animationen entstehen, damit sie besser mit dem tatsächlichen Aussehen der Aktivität übereinstimmen.

Wenn dieses Attribut nicht festgelegt ist, übernimmt die Aktivität den Designsatz für die Anwendung als Ganzes aus dem Attribut theme des Elements <application>. Wenn dieses Attribut ebenfalls nicht festgelegt ist, wird das standardmäßige Systemdesign verwendet. Weitere Informationen finden Sie unter Stile und Designs.

android:uiOptions
Zusätzliche Optionen für die UI einer Aktivität. Muss einer der folgenden Werte sein.

AntwortBeschreibung
"none"Keine zusätzlichen UI-Optionen. Das ist die Standardeinstellung.
"splitActionBarWhenNarrow"Fügt eine Leiste am unteren Bildschirmrand hinzu, um Aktionselemente in der App-Leiste (auch als Aktionsleiste bezeichnet) anzuzeigen, wenn die Leiste für horizontalen Bereich eingeschränkt ist, z. B. im Hochformat auf einem Mobilgerät. Statt einer kleinen Anzahl von Aufgaben in der App-Leiste oben auf dem Bildschirm wird die App-Leiste in den oberen Navigationsbereich und die untere Leiste für Aktionselemente aufgeteilt. Dadurch wird nicht nur für die Aktionselemente, sondern auch für Navigations- und Titelelemente am oberen Rand genügend Platz zur Verfügung gestellt. Die Menüpunkte sind nicht auf die beiden Balken verteilt. Sie werden immer zusammen angezeigt.

Weitere Informationen zur App-Leiste finden Sie unter App-Leiste hinzufügen.

Dieses Attribut wurde in API-Level 14 hinzugefügt.

android:windowSoftInputMode
Wie das Hauptfenster der Aktivität mit dem Fenster interagiert, das die Bildschirmtastatur auf dem Bildschirm enthält. Die Einstellung für dieses Attribut wirkt sich auf zwei Dinge aus:
  • Gibt an, ob die Bildschirmtastatur ausgeblendet oder sichtbar ist, wenn die Aktivität in den Mittelpunkt der Aufmerksamkeit des Nutzers rückt.
  • Gibt an, ob das Hauptfenster der Aktivität verkleinert wird, um Platz für die weiche Tastatur oder das Schwenken des Inhalts zu schaffen, damit der aktuelle Fokus sichtbar wird, wenn ein Teil des Fensters von der Softwaretastatur verdeckt wird.

Die Einstellung muss einer der Werte aus der folgenden Tabelle oder eine Kombination aus einem "state..."-Wert und einem "adjust..."-Wert sein. Wenn in einer der Gruppen mehrere Werte (z. B. mehrere "state..."-Werte) festgelegt werden, führt dies zu nicht definierten Ergebnissen. Einzelne Werte werden durch einen vertikalen Balken (|) getrennt, wie im folgenden Beispiel gezeigt:

<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >

Die hier festgelegten Werte (außer "stateUnspecified" und "adjustUnspecified") überschreiben die im Design festgelegten Werte.

Antwort Beschreibung
"stateUnspecified" Es ist nicht angegeben, ob die Bildschirmtastatur ausgeblendet oder sichtbar ist. Das System wählt einen geeigneten Status aus oder stützt sich auf die Einstellung im Design.

Dies ist die Standardeinstellung für das Verhalten der Softwaretastatur.

"stateUnchanged" Die Bildschirmtastatur wird in dem Zustand belassen, in dem sie zuletzt angezeigt wurde, also sichtbar oder ausgeblendet, wenn die Aktivität in den Vordergrund tritt.
"stateHidden" Die Bildschirmtastatur wird ausgeblendet, wenn der Nutzer die Aktivität auswählt, d. h. wenn er aktiv zu der Aktivität navigiert, anstatt sie zurückzuziehen, wenn er eine andere Aktivität verlässt.
"stateAlwaysHidden" Die Bildschirmtastatur ist immer ausgeblendet, wenn der Eingabefokus im Hauptfenster der Aktivität liegt.
"stateVisible" Die Bildschirmtastatur wird sichtbar, wenn der Nutzer die Aktivität auswählt, d. h. wenn er aktiv zur Aktivität navigiert, anstatt sie zurückzugehen, wenn er eine andere Aktivität verlässt.
"stateAlwaysVisible" Die Bildschirmtastatur ist sichtbar, wenn das Fenster Eingabefokus erhält.
"adjustUnspecified" Gibt an, ob die Größe des Hauptfensters der Aktivität angepasst wird, um Platz für die weiche Tastatur zu schaffen oder den Inhalt des Fensters zu schwenken, um den aktuellen Fokus auf dem Bildschirm sichtbar zu machen. Das System wählt automatisch einen dieser Modi aus, je nachdem, ob der Inhalt des Fensters Layoutansichten hat, die scrollen können. Wenn eine solche Ansicht vorhanden ist, wird die Größe des Fensters angepasst, in der Annahme, dass durch Scrollen der gesamte Fensterinhalt in einem kleineren Bereich sichtbar wird.

Dies ist die Standardeinstellung für das Verhalten des Hauptfensters.

"adjustResize" Die Größe des Hauptfensters der Aktivität wird immer angepasst, um Platz für die Bildschirmtastatur zu schaffen.
"adjustPan" Die Größe des Hauptfensters der Aktivität wird nicht angepasst, um Platz für die Softtastatur zu schaffen. Stattdessen wird der Fensterinhalt automatisch so geschwenkt, dass der aktuelle Fokus nicht von der Tastatur verdeckt wird und Nutzer immer sehen können, was sie eingeben. Dies ist im Allgemeinen weniger wünschenswert als eine Größenanpassung, da der Nutzer möglicherweise die weiche Tastatur schließen muss, um auf verdeckte Teile des Fensters zu gelangen und mit diesen zu interagieren.

Dieses Attribut wurde in API-Level 3 eingeführt.

eingeführt in:
API-Ebene 1 für alle Attribute außer noHistory und windowSoftInputMode, die in API-Ebene 3 hinzugefügt wurden.
Siehe auch:
<application>
<activity-alias>