<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: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: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>
description:
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. Anzeigen, die dort nicht deklariert sind, werden vom System nicht erkannt und nie ausgeliefert.
attributes:
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 zu einer anderen Aktivität gehört. Beispielsweise wird dies für Aktivitäten deklariert, die für benutzerdefinierte Wear-Benachrichtigungen verwendet werden, 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
Ob die Aktivität von der Aufgabe, die sie gestartet hat, zu der Aufgabe verschoben werden kann, zu der sie eine Affinität hat, wenn diese Aufgabe als Nächstes angezeigt wird. Es ist "true", wenn es sich bewegen kann, und "false", wenn es bei der Aufgabe bleibt, bei der es gestartet wurde.

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

Normalerweise wird eine Aktivität beim Starten mit der Aufgabe der Aktivität verknüpft, die sie gestartet hat, und bleibt dort während der gesamten Lebensdauer. Mit diesem Attribut können Sie erzwingen, dass die Aufgabe der Aufgabe, zu der sie eine Affinität hat, neu zugeordnet wird, wenn die aktuelle Aufgabe nicht mehr angezeigt wird. In der Regel wird dies verwendet, um die Aktivitäten einer Anwendung zur Hauptaufgabe zu verschieben, die mit dieser Anwendung verknüpft ist.

Wenn eine E-Mail beispielsweise einen Link zu einer Webseite enthält, wird durch Klicken auf den Link eine Aktivität ausgelöst, durch die die Seite angezeigt wird. Diese Aktivität wird von der Browseranwendung definiert, aber im Rahmen der E-Mail-Aufgabe gestartet. Wenn die Verknüpfung mit der Browseraufgabe neu hergestellt wird, wird sie angezeigt, wenn der Browser das nächste Mal im Vordergrund ist, und ist nicht sichtbar, wenn die E-Mail-Aufgabe wieder in den Vordergrund rückt.

Die Affinität einer Aktivität wird durch das Attribut taskAffinity definiert. Die Affinität einer Aufgabe wird durch Lesen der Affinität ihrer übergeordneten Aktivität bestimmt. Daher befindet sich eine Stammaktivität per Definition immer in einer Aufgabe mit derselben Affinität. Da Aktivitäten mit den Startmodi "singleTask" oder "singleInstance" nur an der Wurzel einer Aufgabe sein können, ist die Neuzuordnung auf die Modi "standard" und "singleTop" beschränkt. Weitere Informationen finden Sie im Artikel zum 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 den ursprünglichen Status zurücksetzen kann. Der Standardwert ist "false". Dieses Attribut ist nur für die Stammaktivität einer Aufgabe sinnvoll. Bei allen anderen Aktivitäten wird sie ignoriert.

Normalerweise löscht das System eine Aufgabe und entfernt alle Aktivitäten aus dem Stapel über der Stammaktivität. In bestimmten Situationen, wenn der Nutzer diese Aufgabe jedoch noch einmal auf dem Startbildschirm auswählt, wird sie nicht gelöscht. Normalerweise geschieht dies, wenn der Nutzer die Aufgabe seit einer bestimmten Zeit, z. B. 30 Minuten, nicht aufgerufen hat.

Wenn dieses Attribut jedoch "true" ist, kehren Nutzer immer in den letzten Status der Aufgabe zurück, unabhängig davon, wie sie dorthin gelangen. Das ist in einer Anwendung wie einem Webbrowser nützlich, in 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 „Letzte Aktivitäten“ verbleiben, bis die letzte Aktivität in der Aufgabe abgeschlossen ist. Bei true wird die Aufgabe automatisch vom Bildschirm „Letzte“ entfernt. Dadurch wird die Verwendung von FLAG_ACTIVITY_RETAIN_IN_RECENTS durch den Anrufer ü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 enthält. Verwenden Sie das Tag mit dem <activity>-Tag, um ein Standardbanner für eine bestimmte Aktivität bereitzustellen, oder mit dem <application>-Tag, 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 Apps mit einer Aktivität angegeben, die die CATEGORY_LEANBACK_LAUNCHER-Intent verarbeitet.

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

Weitere Informationen finden Sie unter Erste Schritte mit TV-Apps im Abschnitt Startbildschirmbanner bereitstellen.

android:canDisplayOnRemoteDevices

Gibt an, ob die Aktivität auf einem Remotegerä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 außer der Stammaktivität aus der Aufgabe entfernt werden, wenn sie über den Startbildschirm neu gestartet wird. "true", wenn die Aufgabe immer auf die 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 – die Stammaktivität. Bei allen anderen Aktivitäten in der Aufgabe wird sie ignoriert.

Wenn der Wert "true" ist, werden Nutzer jedes Mal, wenn sie die Aufgabe starten, zur übergeordneten Aktivität weitergeleitet, unabhängig davon, was sie zuletzt in der Aufgabe getan haben und unabhängig davon, ob sie die Aufgabe über die Schaltfläche „Zurück“ oder „Startseite“ verlassen haben. Wenn der Wert "false" ist, können in einigen Fällen, aber nicht immer, Aktivitäten aus der Aufgabe gelöscht werden. Weitere Informationen finden Sie im Hilfeartikel zum Attribut alwaysRetainTaskState.

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

Wenn dieses Attribut und allowTaskReparenting beide "true" 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 gelöscht.

Dieses Attribut wird ignoriert, wenn FLAG_ACTIVITY_RESET_TASK_IF_NEEDED nicht festgelegt ist.

android:colorMode

Gibt den Farbmodus der Aktivität an. Kann entweder hdr oder wideColorGamut sein.

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

Wenn wideColorGamut, wird auf kompatiblen Geräten angefordert, die Aktivität im Modus „Breite Farbskala“ anzuzeigen. Im Modus mit erweitertem Farbraum kann ein Fenster außerhalb des SRGB-Farbraums gerendert werden, um kräftigere Farben zu erzielen. Wenn das Gerät das Rendern mit erweitertem 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 während der Laufzeit eine Konfigurationsänderung auftritt, wird die Aktivität standardmäßig heruntergefahren und neu gestartet. Wenn Sie jedoch eine Konfiguration mit diesem Attribut deklarieren, wird der Neustart der Aktivität verhindert. Stattdessen bleibt die Aktivität aktiv und die onConfigurationChanged()-Methode wird aufgerufen.

Hinweis:Verwenden Sie dieses Attribut nur in besonderen Fällen, um die Anwendungsleistung und -reaktionsfähigkeit 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 Bildschirms (Farbumfang oder Dynamikbereich) haben sich geändert.

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

"density"

Eine Änderung der Displaydichte, z. B. wenn der Nutzer eine andere Displayskala festlegt oder ein anderes Display aktiv ist.

In API-Ebene 24 hinzugefügt

"fontScale" Eine Änderung des Schriftskalierungsfaktors, z. B. wenn der Nutzer eine neue globale Schriftgröße auswählt.
"fontWeightAdjustment" Die Schriftstärke wurde nicht mehr so stark erhöht.
"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 an der Bedienungshilfe für die Tastatur, 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 werden soll.
"mcc" Eine Änderung des IMSI-Mobilfunklandescodes (Mobile Country Code, MCC), wenn eine SIM erkannt wird, die den MCC aktualisiert.
"mnc" Eine Änderung des IMSI-Mobilfunknetzwerkcodes (MNC), wenn eine SIM erkannt wird, die den MNC aktualisiert.
"navigation" TA zum Navigationstyp wechseln (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, müssen Sie auch die Konfigurationen "screenLayout" und "screenSize" deklarieren, 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 aktiv wird.
"screenSize"

Eine Änderung an 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. Sie ä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 am Touchscreen. Normalerweise passiert das nicht.
"uiMode" Eine Änderung des Modus der Benutzeroberfläche, z. B. wenn der Nutzer das Gerät in ein Tisch- oder Autodock setzt oder der Nachtmodus geändert wird. Weitere Informationen zu den verschiedenen UI-Modi finden Sie unter UiModeManager.

In API-Level 8 hinzugefügt

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

Hinweis:Verwenden Sie sowohl "screenLayout" als auch "smallestScreenSize", um Konfigurationsänderungen im Zusammenhang mit Multifenstern zu verarbeiten. Der Mehrfenstermodus wird ab Android 7.0 (API-Level 24) 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ätegeschützten 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 festlegen, dass mehrere Dokumente aus derselben Anwendung auf dem Bildschirm „Letzte“ angezeigt werden.

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

Wert Beschreibung
"intoExisting" Das System sucht nach einer Aufgabe, deren ComponentName und Daten-URI der Basisabsicht entsprechen. Wenn das System eine solche Aufgabe findet, löscht es sie und startet neu. Die Stammaktivität erhält einen Aufruf an 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. Dabei wird nur dann eine neue Aufgabe erstellt, wenn FLAG_ACTIVITY_NEW_TASK festgelegt ist. Auf dem Bildschirm „Letzte Aktivitäten“ wird die Aktivität wie standardmäßig behandelt: Es wird eine einzelne Aufgabe für die App angezeigt, die mit der Aktivität fortgesetzt wird, die der Nutzer zuletzt ausgeführt hat.
"never" Die Aktivität wird nicht in einem neuen Dokument gestartet, auch wenn der Intent 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 eine dieser Flags in der Aktivität festgelegt ist. Auf dem Bildschirm „Letzte Aktivitäten“ 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
Ob die Aktivität vom System instanziiert werden kann. Geben Sie "true" ein, 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 gilt, einschließlich Aktivitäten. Die Attribute <application> und <activity> müssen beide "true" sein, da sie standardmäßig so festgelegt sind, damit das System die Aktivität instanziieren kann. Wenn einer davon "false" ist, kann die Instanziierung nicht erfolgen.

android:enableOnBackInvokedCallback
Mit diesem Flag können Sie vorausschauende Systemanimationen auf Aktivitätsebene deaktivieren.

Wenn Sie android:enableOnBackInvokedCallback=false festlegen, werden vorausschauende Rückwärtsanimationen entweder auf Aktivitäts- oder auf App-Ebene deaktiviert (je nachdem, wo Sie das Tag einfügen). 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 „Letzte Aktivitäten“ ausgeschlossen wird. Wenn diese Aktivität die Stammaktivität einer neuen Aufgabe ist, bestimmt dieses Attribut, ob die Aufgabe in der Liste der letzten Apps angezeigt wird. Es wird "true" angezeigt, wenn die Aufgabe aus der Liste ausgeschlossen ist, und "false", wenn sie eingeschlossen ist. Der Standardwert ist "false".

android:exported

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 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, legen Sie dieses Element auf "true" fest, damit andere Apps sie starten können. Beispiel: Die Aktivität ist die Hauptaktivität der App und enthält die category android.intent.category.LAUNCHER.

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 Apps einzuschränken. Mit Berechtigungen können Sie auch die externen Entitäten einschränken, die die Aktivität aufrufen können. Weitere Informationen finden Sie im Artikel zum permission-Attribut.

android:finishOnTaskLaunch
Gibt an, ob eine vorhandene Instanz der Aktivität, mit Ausnahme der Stammaktivität, beendet wird, wenn der Nutzer die Aufgabe noch einmal startet, indem er sie auf dem Startbildschirm auswählt. Wenn das Gerät ausgeschaltet ist, ist der Wert "true". Ist es eingeschaltet, ist der Wert "false". 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 gelöscht.

Dieses Attribut wird ignoriert, wenn FLAG_ACTIVITY_RESET_TASK_IF_NEEDED nicht festgelegt ist.

android:hardwareAccelerated
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 steht für Anwendungen ein hardwaregestützter OpenGL-Renderer zur Verfügung, um die Leistung bei vielen gängigen 2D-Grafikoperationen zu verbessern. Wenn der hardwaregestützte Renderer aktiviert ist, werden die meisten Vorgänge in Canvas, Paint, Xfermode, ColorFilter, Shader und Camera beschleunigt.

Dies führt zu flüssigeren Animationen, flüssigerem Scrollen und einer verbesserten Reaktionsfähigkeit insgesamt, auch bei Anwendungen, die die OpenGL-Bibliotheken des Frameworks nicht explizit nutzen. Da für die Hardwarebeschleunigung mehr Ressourcen erforderlich sind, benötigt Ihre App mehr RAM.

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

android:icon

Ein Symbol für die Aktivität. 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 zum Label finden Sie im Attribut android:label.

Dieses Attribut wird als Referenz auf eine Zeichnen-Ressource mit der Bilddefinition festgelegt. Wenn es nicht festgelegt ist, wird stattdessen das Symbol verwendet, das für die Anwendung insgesamt angegeben ist. Weitere Informationen finden Sie im Attribut icon des Elements <application>.

Das Symbol der Aktivität, das hier oder über das Element <application> 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 es "true" ist, ist das FLAG_IMMERSIVE-Bit des ActivityInfo.flags-Elements immer gesetzt, auch wenn sich der immersive Modus während der Laufzeit mithilfe der setImmersive()-Methode ändert.
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 angezeigt wird. Es wird oft zusammen mit dem Aktivitätssymbol angezeigt. Wenn dieses Attribut nicht festgelegt ist, wird stattdessen das Label verwendet, das für die Anwendung insgesamt festgelegt wurde. Weitere Informationen finden Sie im Attribut label des Elements <application>.

Das Label der Aktivität, das hier oder über das Element <application> 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 Referenz auf eine Stringressource festgelegt, damit es wie andere Strings in der Benutzeroberfläche lokalisiert werden kann. Zur Vereinfachung während der Entwicklung der Anwendung kann er jedoch auch als Rohstring festgelegt werden.

android:launchMode

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

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

Der Standardmodus ist "standard".

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

Die Instanzen können zu jeder Aufgabe gehören und sich überall 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 Hilfeartikel zum Attribut taskAffinity.

"singleTask"-, "singleInstance"- und "singleInstancePerTask"-Aktivitäten verhalten sich dagegen anders. "singleInstancePerTask" befindet sich immer am Stamm der Aktivitätsaufgabe. Außerdem kann auf dem Gerät jeweils nur eine Instanz der Aktivität "singleInstance" gespeichert werden, während die Aktivität "singleInstancePerTask bei festgelegter FLAG_ACTIVITY_MULTIPLE_TASK oder FLAG_ACTIVITY_NEW_DOCUMENT mehrmals in verschiedenen Aufgaben instanziiert werden kann.

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 "singleTask"-Aktivität im Stammverzeichnis der Aktivitätsaufgabe enthalten.

Die Modi "standard" und "singleTop" unterscheiden sich in einem Punkt: Jedes Mal, wenn es eine neue Absicht für eine "standard"-Aktivität gibt, wird eine neue Instanz der Klasse erstellt, um auf diese Absicht zu reagieren. Jede Instanz verarbeitet eine einzelne Absicht. 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, erhält diese Instanz die neue Absicht in einem onNewIntent()-Aufruf. Es wird keine neue Instanz erstellt. Andernfalls (wenn sich eine vorhandene Instanz der "singleTop"-Aktivität in der Zielaufgabe befindet, aber nicht ganz oben im Stapel, oder wenn sie ganz oben im Stapel, aber nicht in der Zielaufgabe ist) wird eine neue Instanz erstellt und auf den Stapel geschoben.

Wenn der Nutzer auf eine Aktivität im aktuellen Stack nach oben wechselt, wird das Verhalten ebenfalls vom Startmodus der übergeordneten Aktivität bestimmt. Wenn die übergeordnete Aktivität den Startmodus singleTop hat (oder die up-Intent-Anfrage FLAG_ACTIVITY_CLEAR_TOP enthält), wird die übergeordnete Aktivität an den Anfang des Stapels gestellt und ihr Status bleibt erhalten.

Die Navigationsabsicht wird von der onNewIntent()-Methode 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 Navigationsintent zu empfangen.

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

Bei einer "singleInstance"-Aktivität sind dagegen keine anderen Aktivitäten Teil der Aufgabe. Sie muss die einzige Aktivität in der Aufgabe sein. Wenn 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 Startmodus Mehrere Instanzen? Kommentare
Normale Einführungen für die meisten Aktivitäten "standard" Ja Standard: Das System erstellt immer eine neue Instanz der Aktivität in der Zielaufgabe und leitet die Absicht an diese weiter.
"singleTop" Bedingt Wenn oben in der Zielaufgabe bereits eine Instanz der Aktivität vorhanden ist, leitet das System die Absicht über einen Aufruf der onNewIntent()-Methode an diese Instanz weiter, anstatt eine neue Instanz der Aktivität zu erstellen.
Spezielle Einführungen
(nicht für die allgemeine Nutzung empfohlen)
"singleTask" Bedingt Das System erstellt die Aktivität im Stamm einer neuen Aufgabe oder sucht sie in 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 die Absicht über einen Aufruf der onNewIntent()-Methode an die vorhandene Instanz weiter, anstatt eine neue zu erstellen.
"singleInstance" Nein Wie bei "singleTask", mit der Ausnahme, dass das System keine weiteren Aktivitäten in der 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, durch die die Aufgabe erstellt wurde. Daher gibt es in einer Aufgabe nur eine Instanz dieser Aktivität. Die Aktivität kann jedoch in verschiedenen Aufgaben mehrmals instanziiert werden.

Wie in der Tabelle oben zu sehen, ist "standard" der Standardmodus und für die meisten Arten von Aktivitäten geeignet. "singleTop" ist auch 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 vertraut ist und sich stark von den meisten anderen Anwendungen unterscheidet.

Unabhängig vom ausgewählten Startmodus sollten Sie die Nutzerfreundlichkeit der Aktivität beim Starten und beim Zurückkehren über die Schaltfläche „Zurück“ von anderen Aktivitäten und Aufgaben testen.

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

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

Android kann Aufgaben im immersiven, kioskähnlichen Modus ausführen, der als Modus „Gesperrte Aufgabe“ bezeichnet wird. Wenn das System im Sperrmodus ausgeführt wird, können Nutzer des Geräts in der Regel keine Benachrichtigungen sehen, nicht auf nicht auf der Zulassungsliste stehende Apps zugreifen oder 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 Sperrmodus befindet. System- und privilegierte Apps können jedoch im Modus für gesperrte Aufgaben 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 „gesperrte Aufgabe“ gestartet, können aber dorthin verschoben werden, indem startLockTask() aufgerufen wird.
"never"

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

Hinweis:Dieser Modus ist nur für System- und privilegierte Anwendungen 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 mit always identisch, mit der Ausnahme, dass die Aktivität stopLockTask() aufrufen muss, bevor sie abgeschlossen werden kann, wenn es sich um die letzte gesperrte Aufgabe handelt. 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 für gesperrte Aufgaben gestartet. Wenn das System bereits im Modus „Aufgabe sperren“ ist, wenn diese Aufgabe gestartet wird, wird die neue Aufgabe über der aktuellen Aufgabe gestartet. Aufgaben, die in diesem Modus gestartet werden, können den Sperrmodus für Aufgaben beenden, indem finish() aufgerufen wird.

Hinweis:Dieser Modus ist nur für System- und privilegierte Anwendungen 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 der Aufgaben, die auf dieser Aktivität auf dem Bildschirm „Letzte Aktivitäten“ basieren. Wenn diese Anzahl erreicht ist, entfernt das System die Instanz, die am längsten nicht verwendet wurde, vom Bildschirm „Letzte“. Gültige Werte sind Ganzzahlen von 1 bis 50 oder 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 in einem Letterbox-Format dargestellt. Dabei bleiben Teile des Displays unbelegt, damit die App im angegebenen maximalen Seitenverhältnis ausgeführt werden kann.

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

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

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

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

android:multiprocess
Gibt an, ob eine Instanz der Aktivität im Prozess der Komponente gestartet werden kann, die sie gestartet hat. Geben Sie "true" ein, 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 notwendig oder wünschenswert.

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

Ändern Sie diesen Namen nach der Veröffentlichung Ihrer App nicht, es sei denn, Sie haben android:exported="false" festgelegt. Es gibt keinen Standardwert. Der Name muss angegeben werden.

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

Der Wert "true" bedeutet, dass die Aktivität keine Verlaufsspur hinterlässt. Sie bleibt nicht im Aktivitätsstapel für die Aufgabe, sodass der Nutzer nicht mehr 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 android:name-Attribut des entsprechenden <activity>-Elements zugewiesen ist.

Anhand dieses Attributs ermittelt das System, welche Aktivität gestartet werden soll, wenn der Nutzer in der Aktionsleiste auf die Schaltfläche „Zurück“ tippt. Das System kann diese Informationen auch verwenden, um einen Backstack von Aktivitäten mit TaskStackBuilder zu erstellen.

Zur Unterstützung der API-Ebenen 4–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 für die Navigation nach oben finden Sie unter Navigation nach oben bereitstellen.

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

android:persistableMode

Hiermit wird definiert, wie eine Instanz einer Aktivität in einer übergeordneten Aufgabe bei Geräteneustarts beibehalten wird.

Wenn der Wert dieses Attributs für die Stammaktivität einer Aufgabe auf persistRootOnly festgelegt ist, wird nur die Stammaktivität beibehalten. Andernfalls werden die Aktivitäten geprüft, die im Backstack der Aufgabe weiter oben liegen. Alle Aktivitäten, bei denen der Wert dieses Attributs auf persistAcrossReboots festgelegt ist, bleiben erhalten.

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

Wert Beschreibung
persistRootOnly

Standardwert. Wenn das System neu gestartet wird, bleibt die Aktivitätsaufgabe erhalten, aber es wird nur die Startabsicht der Stammaktivität verwendet.

Wenn die Startabsicht Ihrer App die Stammaktivität Ihrer App lädt, erhält die Aktivität kein PersistableBundle-Objekt. Verwenden Sie daher onSaveInstanceState() nicht, um den Status der Root-Aktivität Ihrer App nach einem Geräteneustart beizubehalten.

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

persistAcrossReboots

Der Status dieser Aktivität wird zusammen mit dem Status aller Aktivitäten im Backstack beibehalten, deren eigenes persistableMode-Attribut auf persistAcrossReboots festgelegt ist. Wenn eine Aktivität kein persistableMode-Attribut hat, das auf persistAcrossReboots festgelegt ist, oder wenn sie mit dem Flag Intent.FLAG_ACTIVITY_NEW_DOCUMENT gestartet wird, wird diese Aktivität zusammen mit allen Aktivitäten im Backstack nicht beibehalten.

Wenn ein Intent eine Aktivität lädt, deren persistableMode-Attribut in Ihrer App auf persistAcrossReboots festgelegt ist, erhält die Aktivität in der Methode onCreate() ein PersistableBundle-Objekt. Daher können Sie mit onSaveInstanceState() den Status einer Aktivität nach einem Neustart des Geräts beibehalten, solange 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 auf das Verhalten Ihrer App aus, wenn er für die Hauptaktivität Ihrer App festgelegt ist.

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

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

Wenn dieses Attribut nicht festgelegt ist, wird die Berechtigung angewendet, die über das Attribut permission des Elements <application> festgelegt wurde. 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 der Übersicht zum App-Manifest 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 also nicht verwenden. Bei Bedarf können Sie den Standardprozessnamen jedoch mit diesem Attribut überschreiben, um Ihre App-Komponenten auf mehrere Prozesse zu verteilen.

Wenn der diesem Attribut zugewiesene Name mit einem Doppelpunkt (:) beginnt, wird bei Bedarf ein neuer Prozess erstellt, der nur für die Anwendung gilt. Die Aktivität wird dann 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. So können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, was die Ressourcennutzung reduziert.

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 Aufgaben-IDs an eine Aktivität über ihr im Aufgabenstapel abgibt. Bei einer Aufgabe, bei der dieses Attribut für die Stammaktivität auf "true" festgelegt ist, wird die BasisIntent durch die der nächsten Aktivität in der Aufgabe ersetzt.

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

Wenn dieses Attribut auf "true" festgelegt ist, kann die Aktivität auch die ActivityManager.TaskDescription verwenden, um Labels, Farben und Symbole auf dem Bildschirm „Letzte“ 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. Das bedeutet, dass keine speziellen Berechtigungen erforderlich sind. 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 eine SecurityException abgelehnt.

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

Kann ein Stringwert sein, bei dem Zeichen wie „\\n“ oder „\\uxxxx“ für ein Unicode-Zeichen mit „\\“ maskiert werden.

Muss einer der folgenden konstanten Werte sein.

Konstante Wert Beschreibung
Keine 0 Standardmäßig sind keine speziellen Berechtigungen erforderlich.
lesen 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 Lese- oder Schreibzugriff auf die übergebenen Inhalts-URIs hat.
für mich 2 Erzwingt, dass der Aufrufer Schreibzugriff auf die übergebenen Inhalts-URIs hat.
android:resizeableActivity

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

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

Wenn Sie dieses Attribut auf "false" festlegen, ist nicht garantiert, dass auf dem Bildschirm keine anderen Apps im Multifenstermodus zu sehen sind, z. B. im Bild-im-Bild-Modus oder auf anderen Displays. Das Festlegen dieses Flags bedeutet also nicht, dass Ihre App exklusiven Ressourcenzugriff hat.

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

Wenn Ihre 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 geändert werden kann, nicht ob die App den Modus mit mehreren Fenstern unterstützt. Bei resizeableActivity="false" wird die App bei Bedarf in den Kompatibilitätsmodus versetzt, um die Displayabmessungen einzuhalten.
  • Kleine Bildschirme (sw < 600 dp): Wenn resizeableActivity="true" und die Mindestbreite und Mindesthöhe der Aktivität die Anforderungen für den Multifenstermodus erfüllen, unterstützt die App den Multifenstermodus. Wenn resizeableActivity="false", unterstützt die App den Multifenstermodus unabhängig von der Mindestbreite und -höhe der Aktivität nicht.

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

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

Hinweis:Der Wert der Root-Aktivität einer Aufgabe wird auf alle zusätzlichen Aktivitäten angewendet, die in der Aufgabe gestartet werden. Wenn also die Root-Aktivität einer Aufgabe veränderbar ist, behandelt das System alle anderen Aktivitäten in der Aufgabe als veränderbar. Wenn die übergeordnete Aktivität nicht skalierbar ist, können auch die anderen Aktivitäten in der Aufgabe nicht skaliert 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. Das kann zu einer Ausrichtung führen, die von der physischen Ausrichtung des Bildschirms abweicht, sodass der Nutzer das Gerät drehen muss, um die App weiter verwenden zu können. Unter Android 12 (API-Level 31) und höher können Gerätehersteller einzelne Gerätebildschirme (z. B. den tabletgroßen Bildschirm eines faltbaren Geräts) so konfigurieren, dass dieser Vorschlag ignoriert wird und stattdessen eine Aktivität in der bevorzugten Ausrichtung des Geräts des Nutzers in Letterbox-Format dargestellt wird. Dadurch entspricht die Ausrichtung der Aktivität der angeforderten, ohne dass der Nutzer sein Gerät drehen muss.

Im Modus mit mehreren Fenstern dient die angeforderte Ausrichtung nicht als Vorschlag für die Gesamtausrichtung. Wenn die Aktivität letterboxed ist, wirkt sich die gewünschte Ausrichtung auf das Letterboxing aus, das auf die Aktivität angewendet wird.

Der Wert kann einer der folgenden Strings sein:

"unspecified" Der Standardwert. Die Ausrichtung wird vom System ausgewählt. Die verwendete Richtlinie und die in bestimmten Kontexten getroffenen Auswahlentscheidungen können sich von Gerät zu Gerät unterscheiden.
"behind" Entspricht der Ausrichtung der Aktivität, die im Aktivitätsstapel direkt darunter liegt.
"landscape" Querformat (das Display ist breiter als hoch)
"portrait" Hochformat (das Display ist höher als breit)
"reverseLandscape" Querformat, das dem normalen Querformat entgegengesetzt ist. In API-Level 9 hinzugefügt.
"reversePortrait" Hochformat, das der Ausrichtung des normalen Hochformats entgegengesetzt ist. In API-Level 9 hinzugefügt.
"sensorLandscape" Querformat, kann aber je nach Gerätesensor entweder im normalen oder umgekehrten Querformat sein. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. In API-Level 9 hinzugefügt.
"sensorPortrait" Hochformat, kann aber je nach Gerätesensor entweder normal oder umgekehrt sein. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. Je nach Gerätekonfiguration ist die Drehung nach unten jedoch möglicherweise nicht zulässig. In API-Level 9 hinzugefügt.
"userLandscape" Querformat, kann aber je nach Gerätesensor und Nutzereinstellung entweder normal oder umgekehrt sein. In API-Level 18 hinzugefügt.
"userPortrait" Hochformat, kann aber je nach Gerätesensor und Nutzereinstellung entweder normal oder umgekehrt sein. Je nach Gerätekonfiguration ist die Drehung nach unten jedoch möglicherweise nicht zulässig. In API-Level 18 hinzugefügt.
"sensor" Die Ausrichtung wird vom Sensor für die Geräteausrichtung bestimmt. 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. Bei einigen Geräten ist die Standardeinstellung jedoch nicht so, dass sie sich in alle vier möglichen Ausrichtungen drehen. 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 eine der vier Ausrichtungen. Diese Option ähnelt "sensor", mit der Ausnahme, dass hier jede der vier möglichen Bildschirmausrichtungen zulässig ist, unabhängig davon, was das Gerät normalerweise unterstützt. Auf einigen Geräten werden beispielsweise normalerweise keine Porträt- oder Querformate verwendet, die Ausrichtungen werden aber durch diese Einstellung aktiviert. In API-Level 9 hinzugefügt.
"nosensor" Die Ausrichtung wird ohne Bezug auf einen physischen Ausrichtungssensor bestimmt. Der Sensor wird ignoriert, sodass sich das Display nicht entsprechend der Bewegung des Nutzers dreht.
"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 jede der vier möglichen Bildschirmausrichtungen. In API-Level 18 hinzugefügt.
"locked" Die Ausrichtung wird auf die aktuelle Drehung festgelegt. In API-Ebene 18 hinzugefügt.

Hinweis:Wenn Sie einen der Werte für „Querformat“ oder „Hochformat“ angeben, gilt dies als strenge Anforderung für die Ausrichtung, in der die Aktivität ausgeführt wird. Anhand des von Ihnen angegebenen Werts kann nach Diensten wie Google Play gefiltert werden, 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 auf Geräten verfügbar, die die Querformatausrichtung unterstützen.

Deklarieren Sie außerdem explizit, dass Ihre Anwendung entweder im Hoch- oder Querformat angezeigt werden muss, 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 nicht der Nutzer ist, der die Aktivität gestartet hat. Sie können für dieses Attribut einen Literalwert wie "true" oder "false" festlegen oder ein Ressourcen- oder Themenattribut mit einem booleschen Wert.

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

android:stateNotNeeded
Ob die Aktivität beendet und erfolgreich neu gestartet werden kann, ohne den Status gespeichert zu haben. Es ist "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 die onSaveInstanceState()-Methode einer Aktivität aufgerufen, bevor sie vorübergehend heruntergefahren wird, um Ressourcen zu sparen. 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" festgelegt ist, wird onSaveInstanceState() möglicherweise nicht aufgerufen und onCreate() wird anstelle von Bundle übergeben, wie es beim ersten Start der Aktivität der Fall ist.null

Bei der Einstellung "true" kann die Aktivität ohne beibehaltenen Status neu gestartet werden. Beispielsweise wird diese Einstellung für die Aktivität verwendet, die den Startbildschirm anzeigt, damit sie nicht entfernt wird, wenn sie aus irgendeinem Grund abstürzt.

android:supportsPictureInPicture

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

android:taskAffinity

Die Aufgabe, mit der die Aktivität eine Affinität hat. Aktivitäten mit derselben Affinität gehören konzeptionell zur gleichen Aufgabe, zur gleichen „Anwendung“ aus Sicht des Nutzers. Die Affinität einer Aufgabe wird durch die Affinität ihrer übergeordneten Aktivität bestimmt.

Die Affinität bestimmt zwei Dinge: die Aufgabe, der die Aktivität neu zugeordnet wird (siehe allowTaskReparenting-Attribut) und die Aufgabe, in der die Aktivität beim Starten mit dem FLAG_ACTIVITY_NEW_TASK-Flag enthalten ist.

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, die in verschiedenen Anwendungen definiert sind, in derselben Aufgabe zu platzieren. Wenn die Aktivität keine Affinität zu einer Aufgabe hat, setzen Sie einen leeren String.

Wenn dieses Attribut nicht festgelegt ist, wird die für die Anwendung festgelegte Affinität für die Aktivität übernommen. 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 Gesamtthema für die Aktivität definiert. Dadurch wird der Kontext der Aktivität automatisch so festgelegt, dass diese theme verwendet wird. Außerdem werden möglicherweise Animationseffekte für den Start der Aktivität verwendet, damit sie besser zu dem tatsächlichen Aussehen der Aktivität passt.

Wenn dieses Attribut nicht festgelegt ist, wird das für die Anwendung als Ganzes festgelegte Design vom Attribut theme des Elements <application> übernommen. Wenn auch dieses Attribut nicht festgelegt ist, wird das Standardsystemthema verwendet. Weitere Informationen finden Sie unter Stile und Designs.

android:uiOptions

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

WertBeschreibung
"none"Keine zusätzlichen Optionen für die Benutzeroberfläche. Das ist die Standardeinstellung.
"splitActionBarWhenNarrow"Fügen Sie eine Leiste unten auf dem Bildschirm hinzu, um Aktionselemente in der App-Leiste, auch Aktionsleiste genannt, anzuzeigen, wenn der horizontale Platz begrenzt ist, z. B. im Hochformat auf einem Smartphone. Anstatt einer kleinen Anzahl von Aktionselementen, 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 Aktionselemente unterteilt. So ist nicht nur für die Aktionselemente, sondern auch für Navigations- und Titelelemente oben genügend Platz vorhanden. Die Menüpunkte werden 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-Ebene 14 hinzugefügt.

android:windowSoftInputMode
Wie das Hauptfenster der Aktivität mit dem Fenster mit der Bildschirmtastatur interagiert. 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.
  • Ob das Hauptfenster der Aktivität verkleinert wird, um Platz für die Soft-Tastatur zu schaffen, oder der Inhalt so gezoomt wird, dass der aktuelle Fokus sichtbar ist, wenn ein Teil des Fensters von der Soft-Tastatur verdeckt wird.

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

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

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

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

Das ist die Standardeinstellung für das Verhalten der Soft-Tastatur.

"stateUnchanged" Die Soft-Tastatur bleibt in dem Status, in dem sie sich zuletzt befand, also sichtbar oder ausgeblendet, wenn die Aktivität in den Vordergrund rückt.
"stateHidden" Die Soft-Tastatur wird ausgeblendet, wenn der Nutzer die Aktivität auswählt, d. h., wenn er aktiv zur Aktivität wechselt, anstatt sie aufzurufen, wenn er eine andere Aktivität verlässt.
"stateAlwaysHidden" Die Soft-Tastatur ist immer ausgeblendet, wenn der Eingabefokus auf dem Hauptfenster der Aktivität liegt.
"stateVisible" Die Soft-Tastatur wird angezeigt, wenn der Nutzer die Aktivität auswählt, d. h., wenn er sich aktiv zur Aktivität vorwärts bewegt, anstatt sie zu verlassen und dann wieder zurückzugehen.
"stateAlwaysVisible" Die Soft-Tastatur ist sichtbar, wenn das Fenster den Eingabefokus erhält.
"adjustUnspecified" Ob das Hauptfenster der Aktivität verkleinert wird, um Platz für die Soft-Tastatur zu schaffen, oder der Inhalt des Fensters schwenken muss, damit der aktuelle Fokus auf dem Bildschirm sichtbar ist, ist nicht angegeben. Das System wählt automatisch einen dieser Modi aus, je nachdem, ob der Inhalt des Fensters Layoutansichten enthält, in denen der Inhalt gescrollt werden kann. Wenn eine solche Ansicht vorhanden ist, 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.

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

"adjustResize" Das Hauptfenster der Aktivität wird immer so angepasst, dass auf dem Bildschirm Platz für die Bildschirmtastatur ist.
"adjustPan" Das Hauptfenster der Aktivität wird nicht so verkleinert, dass Platz für die Soft-Tastatur entsteht. Stattdessen wird der Inhalt des Fensters automatisch so gezoomt, dass der aktuelle Fokus nie von der Tastatur verdeckt wird und Nutzer immer sehen können, was sie eingeben. Das ist in der Regel weniger wünschenswert als die Größenänderung, da der Nutzer möglicherweise die Soft-Tastatur schließen muss, um auf verdeckten Teilen des Fensters zuzugreifen und mit ihnen zu interagieren.
"adjustNothing" Das Hauptfenster der Aktivität wird nicht verkleinert oder gezoomt, um Platz für die Soft-Tastatur zu schaffen. Die Aktivität ist dafür verantwortlich, mithilfe der Fenstereinzüge Platz für die Soft-Tastatur zu schaffen. Bei Aktivitäten, bei denen Fenster-Einsätze korrekt verarbeitet werden, haben Sie so die beste Kontrolle darüber, wie der Inhalt des Fensters auf dem Bildschirm angezeigt wird.

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

eingeführt in:
API-Ebene 1 für alle Attribute mit Ausnahme von noHistory und windowSoftInputMode, die in API-Ebene 3 hinzugefügt wurden.
Weitere Informationen:
<application>
<activity-alias>