<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:canDisplayOnRemoteDevices=["true" | "false"]
          android:clearTaskOnLaunch=["true" | "false"]
          android:colorMode=[ "hdr" | "wideColorGamut"]
          android:configChanges=["colorMode", "density",
                                 "fontScale", "fontWeightAdjustment",
                                 "grammaticalGender", "keyboard",
                                 "keyboardHidden", "layoutDirection", "locale",
                                 "mcc", "mnc", "navigation", "orientation",
                                 "screenLayout", "screenSize",
                                 "smallestScreenSize", "touchscreen", "uiMode"]
          android:directBootAware=["true" | "false"]
          android:documentLaunchMode=["intoExisting" | "always" |
                                  "none" | "never"]
          android:enabled=["true" | "false"]
          android:enableOnBackInvokedCallback=["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:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"]
          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:minAspectRatio="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:requireContentUriPermissionFromCaller=["none" | "read" | "readAndWrite" |
                                                         "readOrWrite" | "write"] 
          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>
<property>
Beschreibung:
Deklariert eine Aktivität (eine Activity-Unterklasse), die einen Teil der visuellen Benutzeroberfläche der Anwendung implementiert. Alle Aktivitäten müssen in der Manifestdatei durch <activity>-Elemente dargestellt werden. Alle, die dort nicht deklariert sind, 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. in einem Display, das einer anderen Aktivität gehört. Aktivitäten, die für benutzerdefinierte Wear-Benachrichtigungen verwendet werden, deklarieren dies beispielsweise, 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 wechseln kann, für die sie eine Affinität hat, wenn diese Aufgabe als Nächstes in den Vordergrund gerückt wird. "true", wenn sie sich bewegen kann, und "false", wenn sie bei der Aufgabe bleibt, bei der sie begonnen hat.

Wenn dieses Attribut nicht festgelegt ist, gilt der Wert, der durch das entsprechende allowTaskReparenting-Attribut des <application>-Elements festgelegt wurde. Der Standardwert ist "false".

Normalerweise wird eine Aktivität, wenn sie gestartet wird, mit der Aufgabe der Aktivität verknüpft, die sie gestartet hat, und bleibt dort für ihre gesamte Lebensdauer. Mit diesem Attribut können Sie erzwingen, dass die Aktivität dem Task untergeordnet wird, für den sie eine Affinität hat, wenn ihr aktueller Task nicht mehr angezeigt wird. Normalerweise wird damit bewirkt, dass die Aktivitäten einer Anwendung zur Hauptaufgabe der Anwendung verschoben werden.

Wenn eine E‑Mail-Nachricht beispielsweise einen Link zu einer Webseite enthält, wird durch Klicken auf den Link eine Aktivität aufgerufen, die die Seite anzeigen kann. Diese Aktivität wird von der Browseranwendung definiert, wird aber im Rahmen der E-Mail-Aufgabe gestartet. Wenn sie dem Browser-Task untergeordnet ist, wird sie angezeigt, wenn der Browser als Nächstes in den Vordergrund kommt, und nicht, wenn der E-Mail-Task wieder in den Vordergrund kommt.

Die Affinität einer Aktivität wird durch das Attribut taskAffinity definiert. Die Affinität einer Aufgabe wird durch Lesen der Affinität der zugehörigen Stammaktivität bestimmt. Daher befindet sich eine Stammaktivität per Definition immer in einer Aufgabe mit derselben Affinität. Da Aktivitäten mit den Launch-Modi "singleTask" oder "singleInstance" nur im Stamm eines Tasks ausgeführt werden können, ist die Neuzuordnung auf die Modi "standard" und "singleTop" beschränkt. (Siehe auch das Attribut launchMode.)

android:alwaysRetainTaskState
Gibt an, ob der Status der Aufgabe, zu der die Aktivität gehört, immer vom System verwaltet wird. "true", falls dies der Fall ist, und "false", wenn das System die Aufgabe in bestimmten Situationen auf den Ausgangszustand zurücksetzen kann. Der Standardwert ist "false". Dieses Attribut ist nur für die Stammaktivität einer Aufgabe relevant. Bei allen anderen Aktivitäten wird es ignoriert.

Normalerweise löscht das System eine Aufgabe und entfernt alle Aktivitäten aus dem Stapel über der Stammaktivität, wenn der Nutzer diese Aufgabe in bestimmten Situationen auf dem Startbildschirm neu auswählt. Normalerweise geschieht dies, wenn der Nutzer die Aufgabe für einen bestimmten Zeitraum, z. B. 30 Minuten, nicht besucht hat.

Wenn dieses Attribut jedoch "true" ist, kehren Nutzer immer zum letzten Status der Aufgabe zurück, unabhängig davon, wie sie dorthin gelangen. Das ist nützlich in Anwendungen wie Webbrowsern, in denen es viele Status gibt, z. B. mehrere offene Tabs, die Nutzer nicht verlieren möchten.

android:autoRemoveFromRecents
Gibt an, ob Aufgaben, die von der Aktivität mit diesem Attribut gestartet wurden, auf dem Bildschirm „Letzte“ verbleiben, bis die letzte Aktivität in der Aufgabe abgeschlossen ist. Wenn true, wird die Aufgabe automatisch vom Bildschirm „Letzte“ 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 zeichenfähige Ressource, die ein erweitertes grafisches Banner für das zugehörige Element bereitstellt. Verwenden Sie es mit dem Tag <activity>, um ein Standardbanner für eine bestimmte Aktivität bereitzustellen, 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 Referenz auf eine zeichenfähige Ressource festgelegt, die das Bild enthält, z. B. "@drawable/banner". Es gibt keinen Standardbanner.

Weitere Informationen finden Sie unter Banner für den Startbildschirm bereitstellen im Leitfaden „Erste Schritte mit TV-Apps“.

android:canDisplayOnRemoteDevices

Gibt an, ob die Aktivität auf einem Remote-Gerät angezeigt werden kann, auf dem möglicherweise Android ausgeführt wird. Es muss ein boolescher Wert sein, entweder "true" oder "false".

Der Standardwert dieses Attributs ist "true".

android:clearTaskOnLaunch
Ob alle Aktivitäten aus dem Task entfernt werden, mit Ausnahme der Stammaktivität, wenn er über den Startbildschirm neu gestartet wird. "true", wenn die Aufgabe immer auf ihre Stammaktivität reduziert wird, und "false", wenn nicht. Der Standardwert ist "false". Dieses Attribut ist nur für Aktivitäten relevant, die eine neue Aufgabe starten, also die Stammaktivität. Bei allen anderen Aktivitäten in der Aufgabe wird sie ignoriert.

Wenn der Wert "true" ist, werden Nutzer bei jedem Start der Aufgabe zur zugehörigen Stammaktivität weitergeleitet, unabhängig davon, was sie zuletzt in der Aufgabe gemacht haben und ob sie die Zurück- oder die Startseite-Schaltfläche verwendet haben, um die Aufgabe zu verlassen. Wenn der Wert "false" ist, kann die Aufgabe in einigen Fällen von Aktivitäten befreit werden, aber nicht immer. Weitere Informationen finden Sie im Attribut alwaysRetainTaskState.

Angenommen, der Nutzer startet die Aktivität P über den Startbildschirm und wechselt von dort zur Aktivität Q. Als Nächstes tippt der Nutzer auf „Home“ und kehrt dann zur Aktivität P zurück. Normalerweise sieht der Nutzer Aktivität Q, da er zuletzt die Aufgabe von P ausgeführt hat. Wenn P dieses Flag jedoch auf "true" setzt, werden alle Aktivitäten darüber – in diesem Fall Q – entfernt, wenn der Nutzer die Aktivität P über den Startbildschirm startet. Wenn der Nutzer zur Aufgabe zurückkehrt, sieht er also nur P.

Wenn sowohl dieses Attribut als auch allowTaskReparenting auf "true" festgelegt sind, werden alle Aktivitäten, die neu zugeordnet werden können, in die Aufgabe verschoben, mit der sie eine 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. Falls angegeben, kann der Wert entweder hdr oder wideColorGamut sein.

Wenn hdr, wird angefordert, dass die Aktivität in einem hohen Dynamikbereich angezeigt wird, sofern das Gerät dies unterstützt.

Wenn wideColorGamut, werden Anfragen gestellt, dass die Aktivität auf kompatiblen Geräten im Modus mit breiter Farbskala angezeigt wird. Im Modus mit breitem Farbspektrum kann ein Fenster außerhalb des SRGB-Farbspektrums gerendert werden, um lebendigere Farben darzustellen. Wenn das Gerät die Darstellung mit großem Farbraum nicht unterstützt, hat dieses Attribut keine Auswirkungen. Weitere Informationen zum Rendern im Wide-Color-Modus finden Sie unter Grafiken mit Wide-Color-Inhalt optimieren.

android:configChanges
Listet Konfigurationsänderungen auf, die von der Aktivität selbst verarbeitet werden. Wenn zur Laufzeit eine Konfigurationsänderung erfolgt, wird die Aktivität standardmäßig beendet und neu gestartet. Wenn Sie jedoch eine Konfiguration mit diesem Attribut deklarieren, wird verhindert, dass die Aktivität neu gestartet wird. Stattdessen wird die Aktivität weiter ausgeführt und ihre onConfigurationChanged()-Methode wird aufgerufen.

Hinweis:Verwenden Sie dieses Attribut nur in Sonderfällen, um die Leistung und Reaktionsfähigkeit der Anwendung 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".

Wert Beschreibung
"colorMode"

Die Farbmodusfunktionen des Displays (Farbskala oder dynamischer Bereich) haben sich geändert.

Hinweis:Der Farbmodus, der in den Aktivitätsanfragen mit dem Attribut colorMode oder zur Laufzeit angefordert wird, unterscheidet sich von der Funktion für verschiedene Farbmodi. Wenn eine Aktivität den verwendeten Farbmodus ändert, führt dies nicht zu einer Konfigurationsänderung, da sich die Farbfunktionen des Displays nicht geändert haben.

"density"

Eine Änderung des Kompaktheitsgrads, z. B. wenn der Nutzer einen anderen Skalierungsfaktor für das Display angibt oder ein anderes Display aktiv ist.

In API-Ebene 24 hinzugefügt.

"fontScale" Eine Änderung des Schriftart-Skalierungsfaktors, z. B. wenn der Nutzer eine neue globale Schriftgröße auswählt.
"fontWeightAdjustment" Die Schriftstärke wurde geändert.
"grammaticalGender" Das grammatische Geschlecht der Sprache hat sich geändert. Weitere Informationen finden Sie unter GrammaticalInflectionManager.

In API-Level 34 hinzugefügt.

"keyboard" Eine Änderung des Tastaturtyps, z. B. wenn der Nutzer eine externe Tastatur anschließt.
"keyboardHidden" Eine Änderung der Tastatur-Bedienungshilfe, z. B. wenn der Nutzer die Hardwaretastatur einblendet.
"layoutDirection"

Eine Änderung der Layoutrichtung, z. B. von links nach rechts (LTR) zu rechts nach links (RTL).

In API-Level 17 hinzugefügt.

"locale" Eine Änderung des Gebietsschemas, z. B. wenn der Nutzer eine neue Sprache auswählt, in der Text angezeigt wird.
"mcc" Eine Änderung des MCC (Mobile Country Code) der IMSI, wenn eine SIM-Karte erkannt wird, die den MCC aktualisiert.
"mnc" Eine Änderung des IMSI-Mobilfunknetzcodes (Mobile Network Code, MNC), wenn eine SIM-Karte erkannt wird, die den MNC aktualisiert.
"navigation" TA-Änderung des Navigationstyps (Trackball oder Steuerkreuz). Normalerweise passiert das nicht.
"orientation"

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

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

"screenLayout" Eine Änderung des Bildschirmlayouts, z. B. wenn ein anderes Display aktiviert wird.
"screenSize"

Eine Änderung der aktuell verfügbaren Bildschirmgröße.

Dies entspricht einer Änderung der aktuell 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 entspricht einer Größenänderung unabhängig von der Ausrichtung. Die Größe ändert sich also nur, wenn sich die tatsächliche physische Bildschirmgröße ändert, z. B. beim Wechsel zu einem externen Display. Eine Änderung an dieser Konfiguration entspricht einer Änderung an der smallestWidth-Konfiguration.

In API-Level 13 hinzugefügt.

"touchscreen" Eine Änderung des Touchscreen-Modus, z. B. wenn der Nutzer ein Eingabegerät anschließt oder trennt oder die App auf einen anderen Bildschirm verschiebt.
"uiMode" Eine Änderung des Benutzeroberflächenmodus, z. B. wenn der Nutzer das Gerät in ein Dock auf dem Schreibtisch oder im Auto legt oder der Nachtmodus geändert wird. Weitere Informationen zu den verschiedenen Benutzeroberflächenmodi finden Sie unter UiModeManager.

In API-Level 8 hinzugefügt.

Alle diese Konfigurationsänderungen können sich auf die von der Anwendung angezeigten Ressourcenwerte auswirken. Wenn onConfigurationChanged() aufgerufen wird, ist es daher in der Regel erforderlich, alle Ressourcen, einschließlich Ansichtslayouts und Drawables, noch einmal abzurufen, um die Änderung korrekt zu verarbeiten.

Hinweis:Verwenden Sie sowohl "screenLayout" als auch "smallestScreenSize", um Konfigurationsänderungen im Zusammenhang mit Multi-Window zu verarbeiten. Der Mehrfenstermodus wird in Android 7.0 (API-Level 24) oder höher unterstützt.

android:directBootAware

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

Hinweis : Während des Direktstarts kann eine Aktivität in Ihrer Anwendung nur auf die Daten zugreifen, die im geräteschutzgesicherten Speicher gespeichert sind.

Der Standardwert ist "false".

android:documentLaunchMode
Gibt an, wie einer Aufgabe jedes Mal, wenn sie gestartet wird, eine neue Instanz einer Aktivität hinzugefügt wird. Mit diesem Attribut kann der Nutzer mehrere Dokumente derselben Anwendung auf dem Bildschirm „Zuletzt verwendet“ sehen.

Dieses Attribut hat vier Werte, die beim Öffnen eines Dokuments mit der Anwendung die folgenden Auswirkungen haben:

Wert Beschreibung
"intoExisting" Das System sucht nach einer Aufgabe, deren Basis-Intent ComponentName und Daten-URI mit denen des startenden Intents übereinstimmen. Wenn das System eine solche Aufgabe findet, wird sie gelöscht und neu gestartet. Die Root-Aktivität erhält einen Aufruf von onNewIntent(android.content.Intent). Wenn das System keine solche Aufgabe findet, wird eine neue Aufgabe erstellt.
"always" Durch die 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" Für die Aktivität wird keine neue Aufgabe erstellt. Dies ist der Standardwert. Eine neue Aufgabe wird nur erstellt, wenn FLAG_ACTIVITY_NEW_TASK festgelegt ist. Auf dem Bildschirm „Letzte“ wird die Aktivität wie standardmäßig behandelt: Für die App wird eine einzelne Aufgabe angezeigt, die mit der letzten Aktivität fortgesetzt wird, die der Nutzer aufgerufen hat.
"never" Die Aktivität wird nicht in einem neuen Dokument gestartet, auch wenn die Absicht FLAG_ACTIVITY_NEW_DOCUMENT enthält. Wenn Sie diese Einstellung festlegen, wird das Verhalten der Flags FLAG_ACTIVITY_NEW_DOCUMENT und FLAG_ACTIVITY_MULTIPLE_TASK überschrieben, falls eines dieser Flags in der Aktivität festgelegt ist. Auf dem Bildschirm „Letzte Apps“ wird dann 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. "true", wenn das möglich ist, und "false", wenn nicht. Der Standardwert ist "true".

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

android:enableOnBackInvokedCallback

Mit diesem Flag können Sie intelligente Systemanimationen auf Aktivitätsebene deaktivieren.

Legen Sie android:enableOnBackInvokedCallback=false fest, um intelligente „Zurück“-Geste-Animationen auf Aktivitätsebene zu deaktivieren und das System anzuweisen, Aufrufe der OnBackInvokedCallback-Plattform-API zu ignorieren.

android:excludeFromRecents

Gibt an, ob die durch diese Aktivität initiierte Aufgabe vom Bildschirm „Letzte“ ausgeschlossen ist. Wenn diese Aktivität die Stammaktivität einer neuen Aufgabe ist, bestimmt dieses Attribut, ob die Aufgabe in der Liste der zuletzt verwendeten Apps angezeigt wird. "true", wenn die Aufgabe aus der Liste ausgeschlossen ist, und "false", wenn sie enthalten ist. Der Standardwert ist "false".

android:exported

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

  • Wenn "true", ist die Aktivität für jede App zugänglich und kann über ihren genauen Klassennamen gestartet werden.
  • Wenn "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, legen Sie dieses Element auf "true" fest, damit andere Apps sie starten können. Wenn die Aktivität beispielsweise die Hauptaktivität der App ist und category enthält, wird android.intent.category.LAUNCHER verwendet.

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

Dieses Attribut ist nicht die einzige Möglichkeit, die Sichtbarkeit einer Aktivität für andere Anwendungen einzuschränken. Berechtigungen werden auch verwendet, um die externen Entitäten zu begrenzen, die die Aktivität aufrufen können. Weitere Informationen finden Sie unter dem Attribut permission.

android:finishOnTaskLaunch
Gibt an, ob eine vorhandene Instanz der Aktivität (mit Ausnahme der Stammaktivität) beendet wird, wenn der Nutzer die Aufgabe durch Auswahl auf dem Startbildschirm neu startet. "true", wenn es heruntergefahren ist, und "false", wenn nicht. Der Standardwert ist "false".

Wenn dieses Attribut und allowTaskReparenting beide "true" sind, hat dieses Attribut Vorrang. Die Affinität der Aktivität wird ignoriert. Die Aktivität wird nicht neu zugeordnet, sondern beendet.

Dieses Attribut wird ignoriert, wenn FLAG_ACTIVITY_RESET_TASK_IF_NEEDED nicht festgelegt ist.

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

Unter Android 3.0 und höher ist für Anwendungen ein hardwarebeschleunigter OpenGL-Renderer verfügbar, 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 Camera beschleunigt.

Das führt zu flüssigeren Animationen, einem flüssigeren Scrollen und einer insgesamt besseren Reaktionsfähigkeit, auch bei Anwendungen, die die OpenGL-Bibliotheken des Frameworks nicht explizit verwenden. Da für die Hardwarebeschleunigung mehr Ressourcen erforderlich sind, verbraucht Ihre App mehr RAM.

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 repräsentiert. Das Symbol 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 von einem Label begleitet. Informationen dazu finden Sie im Attribut android:label.

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

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

android:immersive
Legt die Einstellung für den immersiven Modus für die aktuelle Aktivität fest. Wenn der Wert "true" ist, ist das FLAG_IMMERSIVE-Bit des ActivityInfo.flags-Elements immer gesetzt, auch wenn sich der Immersive-Modus zur Laufzeit mit der Methode setImmersive() ändert.
android:intentMatchingFlags

Mit diesem Attribut können Sie genauer festlegen, wie das System eingehende Intents mit App-Komponenten abgleicht. Standardmäßig werden keine speziellen Abgleichsregeln angewendet.

Der für ein <activity>-Tag festgelegte Wert überschreibt den für das <application>-Tag festgelegten Wert.

Der Wert muss einer oder mehrere der folgenden Flags sein, die durch „|“ getrennt sind:

Flag Beschreibung
none Deaktiviert alle speziellen Abgleichsregeln für eingehende Intents. Wenn Sie mehrere Flags angeben, werden widersprüchliche Werte aufgelöst, indem dem Flag none Vorrang eingeräumt wird.
enforceIntentFilter

Erzwingt einen strengeren Abgleich für eingehende Intents:

  • Explizite Intents müssen mit dem Intent-Filter der Zielkomponente übereinstimmen.
  • Intents ohne Aktion entsprechen keinem Intent-Filter.
allowNullAction

Die Abgleichsregeln werden gelockert, sodass auch Intents ohne Aktion abgeglichen werden können. Dieses Flag wird in Verbindung mit enforceIntentFilter verwendet, um das folgende Verhalten zu erzielen:

  • Explizite Intents müssen mit dem Intent-Filter der Zielkomponente übereinstimmen.
  • Intents ohne Aktion dürfen mit jedem Intent-Filter übereinstimmen.

Weitere Informationen finden Sie im Abschnitt Safer Intents (Sicherere Intents) unter „Verhaltensänderungen in Android 16 (API-Level 36)“.

android:label

Ein für Nutzer lesbares Label für die Aktivität. Das Label wird auf dem Bildschirm angezeigt, wenn die Aktivität dem Nutzer präsentiert wird. Es wird oft zusammen mit dem Aktivitätssymbol angezeigt. Wenn dieses Attribut nicht festgelegt ist, wird stattdessen das für die gesamte Anwendung festgelegte Label verwendet. Weitere Informationen finden Sie im Attribut label des Elements <application>.

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

Das Label wird als Verweis auf eine String-Ressource festgelegt, damit es wie andere Strings in der Benutzeroberfläche lokalisiert werden kann. Während Sie die Anwendung entwickeln, kann sie jedoch auch als Raw-String festgelegt werden.

android:launchMode

Eine Anleitung zum Starten der Aktivität. Es gibt fünf Modi, die in Verbindung mit Aktivitäts-Flags (FLAG_ACTIVITY_*-Konstanten) in Intent-Objekten bestimmen, was passiert, wenn die Aktivität aufgerufen wird, um einen Intent zu verarbeiten:

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

Der Standardmodus ist "standard".

Wie in der folgenden Tabelle dargestellt, lassen sich die Modi in zwei Hauptgruppen einteilen: "standard"- und "singleTop"-Aktivitäten auf der einen Seite und "singleTask"-, "singleInstance"- und "singleInstancePerTask"-Aktivitäten auf der anderen Seite. 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 in der Aufgabe gestartet, die startActivity() aufgerufen hat, 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 im Artikel zum Attribut taskAffinity.

Im Gegensatz dazu haben "singleTask"-, "singleInstance"- und "singleInstancePerTask"-Aktivitäten unterschiedliche Verhaltensweisen. "singleInstancePerTask" ist immer die Grundlage der Aktivitätsaufgabe. Außerdem kann das Gerät jeweils nur eine Instanz der Aktivität "singleInstance" enthalten, während die Aktivität "singleInstancePerTask bei Festlegung von FLAG_ACTIVITY_MULTIPLE_TASK oder FLAG_ACTIVITY_NEW_DOCUMENT mehrmals in verschiedenen Tasks instanziiert werden kann.

Bei einer Aktivität mit dem Startmodus "singleTask" werden die Verhaltensweisen von "singleInstance" und "singleInstancePerTask" kombiniert: Die Aktivität kann mehrmals instanziiert werden und sich an einer beliebigen Stelle in einer Aufgabe mit demselben taskAffinity befinden. Das Gerät kann jedoch nur eine Aufgabe zum Auffinden der "singleTask"-Aktivität im Stammverzeichnis der Aktivitätsaufgabe speichern.

Die Modi "standard" und "singleTop" unterscheiden sich in einem Punkt: Jedes Mal, wenn ein neuer Intent für eine "standard"-Aktivität vorhanden ist, 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 oben im Stapel hat, empfängt diese Instanz den neuen Intent in einem onNewIntent()-Aufruf. Es wird keine neue Instanz erstellt. Andernfalls – wenn sich eine vorhandene Instanz der "singleTop"-Aktivität im Ziel-Task, aber nicht oben im Stack befindet oder wenn sie sich oben in einem Stack, aber nicht im Ziel-Task befindet – wird eine neue Instanz erstellt und in den Stack eingefügt.

Wenn der Nutzer nach oben zu einer Aktivität im aktuellen Stapel navigiert, wird das Verhalten durch den Startmodus der übergeordneten Aktivität bestimmt. Wenn die übergeordnete Aktivität den Startmodus singleTop hat oder der up-Intent FLAG_ACTIVITY_CLEAR_TOP enthält, wird die übergeordnete Aktivität an den Anfang des Stacks verschoben und ihr Status bleibt erhalten.

Die Navigationsabsicht wird von der Methode onNewIntent() der übergeordneten Aktivität empfangen. Wenn die übergeordnete Aktivität den Startmodus standard hat und der up-Intent nicht FLAG_ACTIVITY_CLEAR_TOP enthält, werden die aktuelle Aktivität und ihr übergeordnetes Element aus dem Stack entfernt und eine neue Instanz der übergeordneten Aktivität wird erstellt, um den Navigations-Intent zu empfangen.

Der Modus "singleInstance" unterscheidet sich auch nur in einem Punkt von "singleTask" und "singleInstancePerTask": Eine Aktivität mit dem Startmodus "singleTask" oder "singleInstancePerTask" kann andere Aktivitäten, notwendigerweise "standard"- und "singleTop"-Aktivitäten, in ihre Aufgabe einbeziehen.

Bei einer "singleInstance"-Aktivität hingegen dürfen keine anderen Aktivitäten Teil der Aufgabe sein. Sie muss die einzige Aktivität in der Aufgabe sein. Wenn dadurch eine andere Aktivität gestartet wird, wird diese Aktivität einer anderen Aufgabe zugewiesen, als wäre FLAG_ACTIVITY_NEW_TASK im Intent enthalten.

Anwendungsfälle Launch-Modus 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 dorthin weiter.
"singleTop" Bedingt Wenn oben im Ziel-Task bereits eine Instanz der Aktivität vorhanden ist, leitet das System die Absicht durch einen Aufruf der Methode onNewIntent() an diese Instanz weiter, anstatt eine neue Instanz der Aktivität zu erstellen.
Spezialisierte Launches
(nicht für die allgemeine Verwendung empfohlen)
"singleTask" Bedingt Das System erstellt die Aktivität im Stammverzeichnis einer neuen Aufgabe oder sucht die Aktivität in einer vorhandenen Aufgabe mit derselben Affinität. Wenn bereits eine Instanz der Aktivität vorhanden ist und sich im Stamm der Aufgabe befindet, leitet das System die Absicht über einen Aufruf der Methode onNewIntent() an die vorhandene Instanz weiter, anstatt eine neue zu erstellen.
"singleInstance" Nein Wie "singleTask", nur dass das System keine anderen Aktivitäten in der Aufgabe startet, in der sich die Instanz befindet. Die Aktivität ist immer das einzige Mitglied der zugehörigen Aufgabe.
"singleInstancePerTask" Bedingt Die Aktivität kann nur als Stammaktivität der Aufgabe ausgeführt werden, also als erste Aktivität, die die Aufgabe erstellt hat. Daher gibt es nur eine Instanz dieser Aktivität in einer Aufgabe. Die Aktivität kann jedoch in verschiedenen Aufgaben mehrmals instanziiert werden.

Wie in der Tabelle oben dargestellt, ist "standard" der Standardmodus und für die meisten Arten von Aktivitäten geeignet. "singleTop" ist auch ein häufig verwendeter 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. Das resultierende Interaktionsmodell ist für Nutzer wahrscheinlich ungewohnt und unterscheidet sich stark von den meisten anderen Anwendungen.

Unabhängig vom gewählten Launch-Modus sollten Sie die Nutzerfreundlichkeit der Activity beim Start und beim Zurückkehren zu ihr über den Button „Zurück“ aus anderen Activities und Tasks testen.

Weitere Informationen zu Startmodi und ihrer Interaktion mit Intent-Flags finden Sie unter Tasks und Backstack.

android:lockTaskMode
Gibt an, wie das System diese Aktivität präsentiert, wenn das Gerät im Modus für gesperrte Aufgaben ausgeführt wird.

Unter Android können Aufgaben in einem immersiven, kioskähnlichen Modus ausgeführt werden, der als Modus „gesperrte Aufgabe“ bezeichnet wird. Wenn das System im Modus „Aufgabe sperren“ ausgeführt wird, können Gerätenutzer in der Regel keine Benachrichtigungen sehen, nicht auf Apps zugreifen, die nicht auf der Zulassungsliste stehen, und nicht zum Startbildschirm zurückkehren, es sei denn, die Home App steht 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 Modus „Aufgabe fixieren“ befindet. System- und privilegierte Apps können jedoch im Modus „Aufgabe sperren“ ausgeführt werden, ohne auf der Zulassungsliste zu stehen.

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

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

Aufgaben werden nicht im lockTask-Modus gestartet und der Gerätenutzer kann diese Aufgaben nicht über den Bildschirm „Letzte“ anpinnen.

Hinweis:Dieser Modus ist nur für System- und privilegierte Apps verfügbar. Nicht privilegierte Apps mit diesem Wert werden als normal behandelt.

"if_whitelisted" Wenn der DPC dieses Paket mit DevicePolicyManager.setLockTaskPackages() autorisiert, ist dieser Modus identisch mit always. Die Aktivität muss jedoch stopLockTask() aufrufen, bevor sie beendet werden kann, wenn sie 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 „Aufgabe sperren“ gestartet. Wenn sich das System bereits im Sperrmodus befindet, wenn diese Aufgabe gestartet wird, wird die neue Aufgabe über der aktuellen Aufgabe gestartet. Aufgaben, die in diesem Modus gestartet wurden, können den Modus „Aufgabe sperren“ durch Aufrufen von finish() beenden.

Hinweis:Dieser Modus ist nur für System- und privilegierte Apps verfügbar. Nicht privilegierte Apps mit diesem Wert werden als normal behandelt.

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

android:maxRecents
Die maximale Anzahl von Aufgaben, die in der Übersicht der zuletzt verwendeten Apps in dieser Aktivität verwurzelt sind. Wenn diese Anzahl von Einträgen erreicht ist, wird die zuletzt verwendete Instanz aus dem Bildschirm „Zuletzt verwendet“ entfernt. Gültige Werte sind Ganzzahlen von 1 bis 50 oder von 1 bis 25 auf Geräten mit wenig Arbeitsspeicher. Null ist ungültig. Der Standardwert ist 16.
android:maxAspectRatio

Das maximale Seitenverhältnis, das von der Aktivität unterstützt wird.

Wenn die App auf einem Gerät mit einem breiteren Seitenverhältnis ausgeführt wird, wird sie automatisch letterboxed. Dabei bleiben Teile des Displays ungenutzt, damit 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 und der kürzeren Abmessung des Geräts angegeben. Wenn das maximale Seitenverhältnis beispielsweise 7:3 ist, legen Sie den Wert dieses Attributs auf 2,33 fest.

Auf anderen Geräten als Wearables muss der Wert dieses Attributs mindestens 1, 33 betragen. Auf Wearable-Geräten muss die Version mindestens 1.0 sein. Andernfalls wird der festgelegte Wert vom System ignoriert.

Weitere Informationen zu diesem Attribut finden Sie unter R.attr.maxAspectRatio.

android:minAspectRatio

Das Mindestseitenverhältnis, das von der Aktivität unterstützt wird.

Wenn die App auf einem Gerät mit einem schmaleren Seitenverhältnis ausgeführt wird, wird sie automatisch letterboxed. Dabei bleiben Teile des Displays ungenutzt, damit die App mit dem angegebenen Mindestseitenverhältnis ausgeführt werden kann.

Das Mindestseitenverhältnis wird als Dezimalform des Quotienten aus der längeren und der kürzeren Seite des Geräts angegeben. Wenn das Seitenverhältnis des Displays beispielsweise 4:3 ist, legen Sie den Mindestwert für das Seitenverhältnis auf 1, 33 fest.

Der Wert muss größer oder gleich 1, 0 sein.Andernfalls wird der festgelegte Wert vom System ignoriert.

Weitere Informationen zu diesem Attribut finden Sie unter R.attr.minAspectRatio.

android:multiprocess
Gibt an, ob eine Instanz der Aktivität im Prozess der Komponente gestartet werden kann, die sie gestartet hat. "true", wenn das möglich ist, und "false", wenn nicht. Der Standardwert ist "false".

Normalerweise wird eine neue Instanz einer Aktivität im Prozess der Anwendung gestartet, die sie definiert hat. Alle Instanzen der Aktivität werden also im selben Prozess ausgeführt. Wenn dieses Flag jedoch auf "true" gesetzt ist, können Instanzen der Aktivität in mehreren Prozessen ausgeführt werden. Das System kann dann Instanzen erstellen, wo immer sie verwendet werden, sofern die Berechtigungen dies zulassen. Das ist fast nie erforderlich oder wünschenswert.

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

Nachdem Sie Ihre Anwendung veröffentlicht haben, dürfen Sie diesen Namen nicht mehr ändern, 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 aus dem Aktivitätsstack entfernt und beendet wird, indem ihre finish()-Methode aufgerufen wird, wenn der Nutzer sie verlässt und sie nicht mehr auf dem Bildschirm zu sehen ist. "true", wenn es abgeschlossen ist, und "false", wenn nicht. Der Standardwert ist "false".

Ein Wert von "true" bedeutet, dass die Aktivität keine historischen Spuren hinterlässt. Sie bleibt 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-Ebene 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 <activity>-Element im Attribut android:name 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 auch verwenden, um einen Backstack von Aktivitäten mit TaskStackBuilder zu erstellen.

Zur Unterstützung der API-Levels 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 zum Deklarieren der übergeordneten Aktivität zur Unterstützung der Aufwärtsnavigation finden Sie unter Aufwärtsnavigation bereitstellen.

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

android:persistableMode

Definiert, wie eine Instanz einer Aktivität in einer enthaltenden Aufgabe über Neustarts des Geräts hinweg beibehalten wird.

Wenn die Root-Aktivität einer Aufgabe den Wert dieses Attributs auf persistRootOnly setzt, wird nur die Root-Aktivität beibehalten. Andernfalls werden die Aktivitäten untersucht, die sich weiter oben im Backstack der Aufgabe befinden. Alle Aktivitäten, bei denen der Wert dieses Attributs auf persistAcrossReboots festgelegt ist, werden beibehalten.

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

Wert Beschreibung
persistRootOnly

Standardwert. Wenn das System neu gestartet wird, bleibt der Aktivitäts-Task erhalten, es wird aber nur der Start-Intent der Root-Aktivität verwendet.

Wenn durch den Start-Intent Ihrer App die Root-Aktivität Ihrer App geladen wird, empfängt die Aktivität kein PersistableBundle-Objekt. Verwenden Sie daher nicht onSaveInstanceState() um den Status der Root-Aktivität Ihrer App bei einem Neustart des Geräts 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, ebenso wie der Status jeder Aktivität weiter oben im Backstack, deren persistableMode-Attribut auf persistAcrossReboots gesetzt ist. Wenn für eine Aktivität kein persistableMode-Attribut mit dem Wert persistAcrossReboots festgelegt ist oder sie mit dem Flag Intent.FLAG_ACTIVITY_NEW_DOCUMENT gestartet wird, wird diese Aktivität zusammen mit allen Aktivitäten weiter oben im Backstack nicht beibehalten.

Wenn durch einen Intent eine Aktivität geladen wird, deren Attribut persistableMode in Ihrer App auf persistAcrossReboots festgelegt ist, empfängt die Aktivität in ihrer Methode onCreate() ein PersistableBundle-Objekt. Daher können Sie onSaveInstanceState() verwenden, um den Status einer Aktivität nach einem Neustart des Geräts beizubehalten, sofern das Attribut persistableMode auf persistAcrossReboots festgelegt ist.

Hinweis : Dieser Attributwert wirkt sich auf das Verhalten Ihrer App aus, auch wenn er für eine andere Aktivität als die Stammaktivität Ihrer 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 in API-Ebene 21 eingeführt.

android:permission
Der Name einer Berechtigung, die Clients benötigen, um die Aktivität zu starten oder anderweitig auf einen Intent zu reagieren. Wenn einem Aufrufer von startActivity() oder startActivityForResult() die angegebene Berechtigung nicht gewährt wird, wird seine Absicht nicht an die Aktivität übermittelt.

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

Weitere Informationen zu Berechtigungen finden Sie im Abschnitt Berechtigungen in der Übersicht zum App-Manifest und unter Sicherheitstipps.

android:process

Der Name des Prozesses, in dem die Aktivität ausgeführt wird. Normalerweise werden alle Komponenten einer Anwendung in einem Standardprozessnamen ausgeführt, der für die Anwendung erstellt wurde. Sie müssen dieses Attribut also nicht verwenden. Bei Bedarf können Sie den Standardprozessnamen jedoch mit diesem Attribut überschreiben und so die App-Komponenten auf mehrere Prozesse verteilen.

Wenn der Name, der diesem Attribut zugewiesen ist, mit einem Doppelpunkt (:) beginnt, wird bei Bedarf ein neuer Prozess erstellt, der für die Anwendung privat ist, 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 mit diesem Namen ausgeführt, sofern sie die entsprechende Berechtigung hat. So können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, was den Ressourcenverbrauch verringert.

Mit dem Attribut process des Elements <application> kann ein anderer Standardprozessname für alle Komponenten festgelegt werden.

android:relinquishTaskIdentity

Gibt an, ob die Aktivität ihre Aufgabenkennungen an eine Aktivität darüber im Aufgabenstapel übergibt. Bei einer Aufgabe, deren Stammaktivität dieses Attribut auf "true" gesetzt hat, wird die Basis-Intent durch die der nächsten Aktivität in der Aufgabe ersetzt.

Wenn für die nächste Aktivität dieses Attribut ebenfalls auf "true" gesetzt ist, wird die Basis Intent für alle Aktivitäten verwendet, die in derselben Aufgabe gestartet werden. Das wird für jede Aktivität fortgesetzt, bis eine Aktivität gefunden wird, für die dieses Attribut auf "false" gesetzt ist. Der Standardwert ist "false".

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

android:requireContentUriPermissionFromCaller

Gibt die Berechtigungen an, die zum Starten dieser Aktivität beim Übergeben von Inhalts-URIs erforderlich sind. Der Standardwert ist none, d. h. es sind keine speziellen Berechtigungen erforderlich. Wenn Sie dieses Attribut festlegen, wird der Aufruf von Aktivitäten basierend auf den Berechtigungen des Aufrufers eingeschränkt. Wenn der Aufrufer nicht die erforderlichen Berechtigungen hat, wird der Start der Aktivität über ein SecurityException abgelehnt.

Die Durchsetzung gilt für Inhalts-URIs in Intent.getData(), Intent.EXTRA_STREAM und Intent.getClipData().

Kann ein Stringwert sein, wobei „\\;“ zum Maskieren von Zeichen wie „\\n“ oder „\\uxxxx“ für ein Unicode-Zeichen verwendet wird.

Muss einer der folgenden konstanten Werte sein.

Konstante Wert Beschreibung
Keine 0 Standardmäßig sind keine besonderen Berechtigungen erforderlich.
read 1 Erzwingt, dass der Aufrufer Lesezugriff auf die übergebenen Inhalts-URIs hat.
readAndWrite 4 Erzwingt, dass der Aufrufer sowohl Lese- als auch Schreibzugriff auf die übergebenen Inhalts-URIs hat.
readOrWrite 3 Erzwingt, dass der Aufrufer entweder Lese- oder Schreibzugriff auf die übergebenen Inhalts-URIs hat.
write 2 Erzwingt, dass der Aufrufer Schreibzugriff auf die übergebenen Inhalts-URIs hat.
android:resizeableActivity

Gibt an, ob die App den Mehrfenstermodus unterstützt.

Sie können dieses Attribut entweder im Element <activity> oder im Element <application> festlegen.

Wenn Sie dieses Attribut auf "true" festlegen, kann der Nutzer die Aktivität im Splitscreen- und Freiformmodus starten. Wenn Sie das Attribut auf "false" setzen, kann die App nicht für eine Umgebung mit Mehrfenstermodus getestet oder optimiert werden. Das System kann die Aktivität weiterhin im Mehrfenstermodus mit angewendetem Kompatibilitätsmodus ausführen.

Wenn Sie dieses Attribut auf "false" festlegen, wird nicht garantiert, dass im Mehrfenstermodus keine anderen Apps auf dem Bildschirm zu sehen sind, z. B. im Bild-im-Bild-Modus oder auf anderen Displays. Wenn Sie dieses Flag festlegen, bedeutet das also nicht, dass Ihre App exklusiven Zugriff auf Ressourcen hat.

Wenn Ihre App auf API‑Level 24 oder höher ausgerichtet ist und Sie keinen Wert für dieses Attribut angeben, wird standardmäßig der Wert "true" verwendet.

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

  • Große Displays (sw >= 600 dp): Alle Apps unterstützen den Mehrfenstermodus. Das Attribut gibt an, ob die Größe einer App geändert werden kann, nicht ob die App den Mehrfenstermodus unterstützt. Wenn resizeableActivity="false", wird die App bei Bedarf in den Kompatibilitätsmodus versetzt, um den Displayabmessungen zu entsprechen.
  • Kleine Bildschirme (sw < 600 dp): Wenn resizeableActivity="true" und die Mindestbreite und Mindesthöhe der Activity den Anforderungen für den Mehrfenstermodus entsprechen, unterstützt die App den Mehrfenstermodus. Wenn resizeableActivity="false", unterstützt die App den Mehrfenstermodus unabhängig von der Mindestbreite und ‑höhe der Aktivität nicht.

Der Wert der Root-Aktivität einer Aufgabe wird auf alle zusätzlichen Aktivitäten angewendet, die in der Aufgabe gestartet werden. Wenn die Stammaktivität einer Aufgabe also die Größe ändern kann, behandelt das System alle anderen Aktivitäten in der Aufgabe als Aktivitäten, deren Größe geändert werden kann. Wenn die Stammaktivität nicht in der Größe angepasst werden kann, können auch die anderen Aktivitäten in der Aufgabe nicht in der Größe angepasst werden.

Hinweis:Der Wert der Root-Aktivität einer Aufgabe wird auf alle zusätzlichen Aktivitäten angewendet, die in der Aufgabe gestartet werden. Wenn die Root-Aktivität einer Aufgabe also die Größe ändern kann, behandelt das System alle anderen Aktivitäten in der Aufgabe als resizable. Wenn die Stammaktivität nicht in der Größe angepasst werden kann, können die anderen Aktivitäten in der Aufgabe auch nicht in der Größe angepasst werden.

android:screenOrientation

Die angeforderte Ausrichtung der Aktivität.

Wenn eine Aktivität den gesamten Bildschirm ausfüllt, dient die angeforderte Ausrichtung als Vorschlag, die Ausrichtung auf diesem Bildschirm an den angeforderten Wert anzupassen. Dies kann zu einer Ausrichtung führen, die sich von der physischen Ausrichtung des Bildschirms im Raum unterscheidet. Der Nutzer muss das Gerät dann drehen, um die App weiter verwenden zu können. Auf Geräten mit Android 12 (API-Level 31) und höher können Gerätehersteller einzelne Gerätebildschirme (z. B. den Tablet-großen Bildschirm eines faltbaren Geräts) so konfigurieren, dass diese Empfehlung ignoriert wird und stattdessen eine Aktivität in der bevorzugten Ausrichtung des Geräts mit Letterboxing dargestellt wird. Dadurch wird die Ausrichtung der Aktivität an die angeforderte Ausrichtung angepasst, ohne dass der Nutzer sein Gerät physisch drehen muss.

Im Multifenstermodus dient die angeforderte Ausrichtung nicht als Vorschlag für die Gesamtausrichtung. Wenn die Aktivität im Letterbox-Format dargestellt wird, wirkt sich die angeforderte Ausrichtung auf die Letterbox-Formatierung aus.

Der Wert kann einer der folgenden Strings sein:

"unspecified" Der Standardwert. Die Ausrichtung wird vom System festgelegt. Die Richtlinie, die verwendet wird, und damit die Entscheidungen, die in bestimmten Kontexten getroffen werden, können sich von Gerät zu Gerät unterscheiden.
"behind" Dieselbe Ausrichtung wie die Aktivität, die sich direkt darunter im Aktivitätsstapel befindet.
"landscape" Querformat (das Display ist breiter als hoch).
"portrait" Hochformat (das Display ist höher als breit).
"reverseLandscape" Querformat in der entgegengesetzten Richtung des normalen Querformats. In API-Level 9 hinzugefügt.
"reversePortrait" Hochformat in der entgegengesetzten Richtung des normalen Hochformats. In API-Level 9 hinzugefügt.
"sensorLandscape" Querformat-Ausrichtung, kann je nach Gerätesensor aber entweder normal oder umgekehrt sein. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. In API-Level 9 hinzugefügt.
"sensorPortrait" Hochformat-Ausrichtung, kann je nach Gerätesensor aber auch normales oder umgekehrtes Hochformat sein. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. Je nach Gerätekonfiguration ist eine um 180 Grad gedrehte Ausrichtung jedoch möglicherweise nicht zulässig. In API-Level 9 hinzugefügt.
"userLandscape" Querformat, das je nach Gerätesensor und Nutzereinstellung entweder normal oder umgekehrt sein kann. In API-Level 18 hinzugefügt.
"userPortrait" Hochformat, kann aber je nach Gerätesensor und den Einstellungen des Nutzers normal oder umgekehrt sein. Je nach Gerätekonfiguration ist eine Drehung um 180 Grad 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 werden standardmäßig jedoch nicht in alle vier möglichen Ausrichtungen gedreht. 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. Das ist ähnlich wie bei "sensor", nur dass hier alle vier möglichen Bildschirmausrichtungen zulässig sind, unabhängig davon, was das Gerät normalerweise unterstützt. Einige Geräte verwenden normalerweise beispielsweise nicht den umgekehrten Hoch- oder Querformatmodus, aber diese Option ermöglicht diese Ausrichtungen. In API-Level 9 hinzugefügt.
"nosensor" Die Ausrichtung wird ohne Bezug auf einen physischen Ausrichtungssensor bestimmt. Der Sensor wird ignoriert, sodass sich die Anzeige nicht daran orientiert, 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 sich diese Einstellung wie user. Andernfalls verhält sie sich wie fullSensor und ermöglicht alle vier möglichen Bildschirmausrichtungen. In API-Level 18 hinzugefügt.
"locked" Sperrt die Ausrichtung auf die aktuelle Drehung, unabhängig davon, wie sie aussieht. Hinzugefügt in API-Ebene 18.

Hinweis:Wenn Sie einen der Werte für das Quer- oder Hochformat deklarieren, gilt dies als harte Anforderung für die Ausrichtung, in der die Aktivität ausgeführt wird. Der von Ihnen deklarierte Wert ermöglicht das Filtern nach Diensten wie Google Play, sodass Ihre Anwendung nur auf Geräten verfügbar ist, die die von Ihren Aktivitäten benötigte Ausrichtung unterstützen. Wenn Sie beispielsweise "landscape", "reverseLandscape" oder "sensorLandscape" deklarieren, ist Ihre Anwendung nur auf Geräten verfügbar, die das Querformat unterstützen.

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

android:showForAllUsers

Gibt an, ob die Aktivität angezeigt wird, wenn der aktuelle Nutzer des Geräts ein anderer ist als der Nutzer, der die Aktivität gestartet hat. Sie können dieses Attribut auf einen Literalwert wie "true" oder "false" festlegen oder auf ein Ressourcen- oder Themenattribut, 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 dass ihr Status gespeichert wurde. "true", wenn es ohne Bezug auf den vorherigen Zustand neu gestartet werden kann, und "false", wenn der vorherige Zustand erforderlich ist. Der Standardwert ist "false".

Normalerweise wird vor dem vorübergehenden Herunterfahren einer Aktivität zum Sparen von Ressourcen die Methode onSaveInstanceState() aufgerufen. Mit dieser Methode wird der aktuelle Status der Aktivität in einem Bundle-Objekt gespeichert, das dann an onCreate() übergeben wird, wenn die Aktivität neu gestartet wird. Wenn dieses Attribut auf "true" gesetzt ist, wird onSaveInstanceState() möglicherweise nicht aufgerufen und onCreate() wird null anstelle von Bundle übergeben, wie es beim ersten Start der Aktivität der Fall ist.

Die Einstellung "true" bedeutet, dass die Aktivität ohne beibehaltenen Status neu gestartet werden kann. Die Aktivität, die den Startbildschirm anzeigt, verwendet diese Einstellung beispielsweise, um sicherzustellen, dass sie 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, aus Nutzersicht zur selben „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 untergeordnet wird (siehe das Attribut allowTaskReparenting), und die Aufgabe, in der die Aktivität beim Start mit dem Flag FLAG_ACTIVITY_NEW_TASK enthalten ist.

Standardmäßig haben alle Aktivitäten in einer Anwendung dieselbe Affinität. Sie können dieses Attribut festlegen, um sie anders zu gruppieren und sogar Aktivitäten, die in verschiedenen Anwendungen definiert sind, in derselben Aufgabe zu platzieren. Wenn Sie angeben möchten, dass die Aktivität keine Affinität zu einer Aufgabe hat, legen Sie sie auf einen leeren String fest.

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

android:theme
Ein Verweis auf eine Stilressource, die ein allgemeines Design für die Aktivität definiert. Dadurch wird der Kontext der Aktivität automatisch so festgelegt, dass dieses theme verwendet wird. Außerdem kann es sein, dass vor dem Start der Aktivität „Start“-Animationen angezeigt werden, um besser zu dem zu passen, wie die Aktivität tatsächlich aussieht.

Wenn dieses Attribut nicht festgelegt ist, übernimmt die Aktivität das Design, das für die gesamte Anwendung im Attribut theme des Elements <application> festgelegt ist. Wenn dieses Attribut ebenfalls nicht festgelegt ist, wird das Standarddesign des Systems verwendet. Weitere Informationen finden Sie unter Stile und Designs.

android:uiOptions

Zusätzliche Optionen für die Benutzeroberfläche einer Aktivität. Muss einer der folgenden Werte sein.

WertBeschreibung
"none"Keine zusätzlichen UI-Optionen. Das ist die Standardeinstellung.
"splitActionBarWhenNarrow"Fügt unten auf dem Bildschirm eine Leiste hinzu, in der Aktionen aus der App-Leiste (auch Aktionsleiste genannt) angezeigt werden, wenn der horizontale Platz begrenzt ist, z. B. im Hochformat auf einem Mobiltelefon. Statt einer kleinen Anzahl von Aktionen, die in der App-Leiste oben auf dem Bildschirm angezeigt werden, ist die App-Leiste in den oberen Navigationsbereich und die untere Leiste für Aktionen unterteilt. Das bedeutet, dass oben nicht nur für die Aktionsschaltflächen, sondern auch für Navigations- und Titelelemente ausreichend Platz ist. Menüpunkte werden nicht auf die beiden Leisten aufgeteilt. Sie werden immer zusammen angezeigt.

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

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

android:windowSoftInputMode
Wie das Hauptfenster der Aktivität mit dem Fenster interagiert, das die Bildschirmtastatur 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 Activity in den Fokus der Nutzer gerät.
  • Ob das Hauptfenster der Aktivität verkleinert wird, um Platz für die Bildschirmtastatur zu schaffen, oder ob der Inhalt verschoben wird, damit der aktuelle Fokus sichtbar ist, wenn ein Teil des Fensters von der Bildschirmtastatur verdeckt wird.

Die Einstellung muss einer der Werte in der folgenden Tabelle oder eine Kombination aus einem "state..."-Wert und einem "adjust..."-Wert sein. Wenn Sie mehrere Werte in einer der beiden Gruppen festlegen, z. B. mehrere "state..."-Werte, sind die Ergebnisse nicht definiert. Einzelne Werte werden durch einen senkrechten Strich (|) getrennt, wie im folgenden Beispiel zu sehen ist:

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

Hier festgelegte Werte (außer "stateUnspecified" und "adjustUnspecified") überschreiben die im Theme festgelegten Werte.

Wert Beschreibung
"stateUnspecified" Es wird nicht angegeben, ob die Bildschirmtastatur ausgeblendet oder sichtbar ist. Das System wählt einen geeigneten Status aus oder verwendet die Einstellung im Theme.

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

"stateUnchanged" Die Bildschirmtastatur behält den Status bei, den sie zuletzt hatte, als die Aktivität in den Vordergrund gerückt ist – sichtbar oder ausgeblendet.
"stateHidden" Die Bildschirmtastatur wird ausgeblendet, wenn der Nutzer die Aktivität auswählt. Das heißt, wenn der Nutzer aktiv zur Aktivität navigiert und nicht zurückkehrt, nachdem er eine andere Aktivität verlassen hat.
"stateAlwaysHidden" Die Bildschirmtastatur ist immer ausgeblendet, wenn das Hauptfenster der Aktivität den Eingabefokus hat.
"stateVisible" Die Bildschirmtastatur wird angezeigt, wenn der Nutzer die Aktivität auswählt. Das heißt, wenn er aktiv zur Aktivität navigiert und nicht dorthin zurückkehrt, wenn er eine andere Aktivität verlässt.
"stateAlwaysVisible" Die Bildschirmtastatur wird angezeigt, wenn das Fenster den Eingabefokus erhält.
"adjustUnspecified" Es ist nicht festgelegt, ob die Größe des Hauptfensters der Aktivität angepasst wird, um Platz für die Bildschirmtastatur zu schaffen, oder ob der Inhalt des Fensters verschoben wird, damit der aktuelle Fokus auf dem Bildschirm sichtbar ist. Das System wählt automatisch einen dieser Modi aus, je nachdem, ob das Fenster Layoutansichten enthält, deren Inhalt gescrollt werden kann. Wenn es eine solche Ansicht gibt, wird die Größe des Fensters angepasst, da davon ausgegangen wird, dass der gesamte Inhalt des Fensters durch Scrollen in einem kleineren Bereich sichtbar gemacht werden kann.

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

"adjustResize" Das Hauptfenster der Activity wird immer so angepasst, dass auf dem Bildschirm Platz für die Bildschirmtastatur ist.
"adjustPan" Das Hauptfenster der Aktivität wird nicht verkleinert, um Platz für die Bildschirmtastatur zu schaffen. Stattdessen wird der Inhalt des Fensters automatisch so verschoben, dass der aktuelle Fokus nie vom Keyboard verdeckt wird und Nutzer immer sehen können, was sie eingeben. Das ist in der Regel weniger wünschenswert als das Anpassen der Größe, da der Nutzer die Bildschirmtastatur möglicherweise schließen muss, um auf verdeckte Teile des Fensters zuzugreifen und mit ihnen zu interagieren.
"adjustNothing" Das Hauptfenster der Aktivität wird nicht verkleinert oder geschwenkt, um Platz für die Bildschirmtastatur zu schaffen. Die Aktivität ist dafür verantwortlich, mithilfe der Fenstereinsetzungen Platz für die Tastatur zu schaffen. Bei Aktivitäten, die Fensterinsets korrekt verarbeiten, haben Sie so die größte Kontrolle darüber, wie die Inhalte des Fensters auf dem Bildschirm angezeigt werden.

Dieses Attribut wurde in API-Ebene 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>