<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 abgeleitete Activity-Klasse), die einen Teil der visuellen Benutzeroberfläche der Anwendung implementiert. Alle Aktivitäten müssen in der Manifestdatei durch <activity>-Elemente dargestellt werden. Alles, was dort nicht deklariert wird, wird vom System auch 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 dann, wenn sich das untergeordnete Element in einem Container befindet, z. B. einer Display, die einer anderen Aktivität gehört. Beispielsweise wird dies für Aktivitäten, die für benutzerdefinierte Wear-Benachrichtigungen verwendet werden, deklariert, damit Wear die Aktivität in seinem Kontextstream anzeigen kann, der sich in einem anderen Prozess befindet.

Der Standardwert dieses Attributs ist false.

android:allowTaskReparenting
Ob die Aktivität von der Aufgabe, die sie gestartet hat, zu der Aufgabe übergehen kann, für die sie eine Affinität hat, wenn diese Aufgabe das nächste Mal in den Vordergrund gestellt wird. Es ist "true", wenn die Datei verschoben werden kann, und "false", wenn sie bei der Aufgabe verbleibt, in der sie begonnen hat.

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

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

Wenn eine E-Mail-Nachricht beispielsweise einen Link zu einer Webseite enthält, wird durch Klicken auf den Link eine Aktivität aufgerufen, mit der die Seite angezeigt werden kann. Diese Aktivität wird von der Browseranwendung definiert, aber im Rahmen der E-Mail-Aufgabe gestartet. Wenn sie der Browseraufgabe wieder zugewiesen wird, wird sie angezeigt, wenn der Browser das nächste Mal in den Vordergrund kommt. Er wird nicht mehr angezeigt, wenn die E-Mail-Aufgabe wieder weitergeleitet wird.

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

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

Normalerweise löscht das System eine Aufgabe und entfernt alle Aktivitäten aus dem Stack oberhalb der Stammaktivität. Das ist in bestimmten Situationen der Fall, wenn der Nutzer die Aufgabe noch einmal auf dem Startbildschirm auswählt. In der Regel geschieht dies, wenn der Nutzer die Aufgabe über einen bestimmten Zeitraum, z. B. 30 Minuten, nicht aufgerufen hat.

Wenn dieses Attribut jedoch "true" lautet, kehren Nutzer immer mit dem letzten Status zur Aufgabe zurück, unabhängig davon, wie sie dorthin gelangen. Dies ist in einer Anwendung wie einem Webbrowser nützlich, in der viele Status wie mehrere geöffnete Tabs vorhanden sind, die Nutzer nicht verlieren möchten.

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

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

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

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

android:canDisplayOnRemoteDevices

Gibt an, ob die Aktivität auf einem Remote-Gerät angezeigt werden kann, auf dem Android ausgeführt wird oder nicht. Es muss sich um einen booleschen Wert handeln, entweder "true" oder "false".

Der Standardwert dieses Attributs ist "true".

android:clearTaskOnLaunch
Gibt an, ob alle Aktivitäten mit Ausnahme der Root-Aktivität aus der Aufgabe entfernt werden, wenn sie vom 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 von Bedeutung, die eine neue Aufgabe starten – die Stammaktivität. Sie wird für alle anderen Aktivitäten in der Aufgabe ignoriert.

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

Angenommen, der Nutzer startet Aktivität P vom Startbildschirm aus und geht von dort zu Aktivität Q. Als Nächstes tippt die nutzende Person auf „Startseite“ und kehrt zu Aktivität P zurück. Normalerweise sieht die nutzende Person die Aktivität Q, da sie das in der Aufgabe von P als Letztes getan hat. Wenn P dieses Flag jedoch auf "true" setzt, werden alle zugehörigen Aktivitäten – in diesem Fall Q – entfernt, wenn der Nutzer die Aktivität P vom Startbildschirm aus startet. Daher sehen Nutzende bei der Rückkehr zur Aufgabe nur P.

Wenn sowohl dieses Attribut als auch allowTaskReparenting "true" sind, werden alle Aktivitäten, denen ein neues übergeordnetes Element zugewiesen werden kann, zu der Aufgabe verschoben, für die sie eine gemeinsame Affinität haben. Die verbleibenden Aktivitäten werden dann verworfen.

Dieses Attribut wird ignoriert, wenn FLAG_ACTIVITY_RESET_TASK_IF_NEEDED nicht festgelegt ist.

android:colorMode

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

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

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

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

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

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

Antwort Beschreibung
"colorMode"

Die Farbmodusfunktionen des Bildschirms (Farbgamut oder Dynamikbereich) haben sich geändert.

Hinweis:Der Farbmodus, den die Aktivität mit dem Attribut colorMode oder zur Laufzeit anfordert, unterscheidet sich von den Funktionen für verschiedene Farbmodi. Eine Aktivität, die den Farbmodus ändert, den sie verwendet, führt nicht zu einer Konfigurationsänderung, da sich die Farbfunktionen des Bildschirms nicht geändert haben.

"density"

Eine Änderung des Kompaktheitsgrads, z. B. wenn der Nutzer eine andere Anzeigegröße angibt oder eine andere Anzeige jetzt aktiv ist.

In API-Level 24 hinzugefügt.

"fontScale" Eine Änderung des Schriftskalierungsfaktors, z. B. wenn der Nutzer eine neue globale Schriftgröße auswählt.
"fontWeightAdjustment" Die Schriftstärke hat sich 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 an den Bedienungshilfen für die Tastatur, z. B. wenn der Nutzer die Hardware-Tastatur einblenden kann.
"layoutDirection"

Eine Änderung der Layoutrichtung, z. B. von links nach rechts (links nach rechts) zu umgekehrt (linksläufig)

In API-Level 17 hinzugefügt.

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

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

Hinweis:Wenn deine App auf Android 3.2 (API-Level 13) oder höher ausgerichtet ist, musst du auch die Konfigurationen "screenLayout" und "screenSize" 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, beispielsweise wenn ein anderer Bildschirm aktiv wird.
"screenSize"

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

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

In API-Level 13 hinzugefügt.

"smallestScreenSize"

Eine Änderung der physischen Bildschirmgröße.

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

In API-Level 13 hinzugefügt.

"touchscreen" Eine Veränderung beim Touchscreen. Normalerweise passiert das nicht.
"uiMode" Eine Änderung des Benutzeroberflächenmodus, z. B. wenn der Nutzer das Gerät in einen Schreibtisch oder ein Kfz-Dock platziert oder der Nachtmodus wechselt. 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 von der Anwendung sichtbaren Ressourcenwerte auswirken. Daher müssen beim Aufrufen von onConfigurationChanged() in der Regel alle Ressourcen, einschließlich Ansichtslayouts und Drawables, noch einmal abgerufen werden, damit die Änderung korrekt verarbeitet wird.

Hinweis:Verwenden Sie sowohl "screenLayout" als auch "smallestScreenSize", um Konfigurationsänderungen im Zusammenhang mit dem Mehrfenstermodus 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 : Beim Direct Boot 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 bei jedem Start eine neue Instanz einer Aktivität zu einer Aufgabe hinzugefügt wird. Mit diesem Attribut kann der Nutzer mehrere Dokumente aus derselben Anwendung auf dem Bildschirm „Letzte“ anzeigen lassen.

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

Antwort Beschreibung
"intoExisting" Das System sucht nach einer Aufgabe, deren Basis-Intent ComponentName und der Daten-URI mit denen des Start-Intents übereinstimmen. Wenn das System eine solche Aufgabe findet, löscht sie die Aufgabe und startet sie neu. Dabei erhält die Root-Aktivität einen Aufruf an onNewIntent(android.content.Intent). Wenn das System eine solche Aufgabe nicht findet, erstellt das System eine neue Aufgabe.
"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 beiden Flags FLAG_ACTIVITY_NEW_DOCUMENT und FLAG_ACTIVITY_MULTIPLE_TASK.
"none" Durch die Aktivität wird keine neue Aufgabe für die Aktivität erstellt. Dies ist der Standardwert, mit dem nur dann eine neue Aufgabe erstellt wird, wenn FLAG_ACTIVITY_NEW_TASK festgelegt ist. Auf dem Bildschirm „Zuletzt verwendet“ wird die Aktivität wie standardmäßig behandelt: Hier wird eine einzelne Aufgabe für die App angezeigt, die bei der letzten vom Nutzer aufgerufenen Aktivität fortgesetzt wird.
"never" Die Aktivität wird auch dann nicht in einem neuen Dokument gestartet, wenn der Intent FLAG_ACTIVITY_NEW_DOCUMENT enthält. Dadurch wird das Verhalten der Flags FLAG_ACTIVITY_NEW_DOCUMENT und FLAG_ACTIVITY_MULTIPLE_TASK überschrieben, wenn eines davon in der Aktivität festgelegt ist und auf dem Bildschirm „Letzte“ eine einzelne Aufgabe für die App angezeigt wird, die bei der zuletzt vom Nutzer aufgerufenen Aktivität fortgesetzt wird.

Hinweis:Für andere Werte 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. Ist das der Fall, lautet der Wert "true" und andernfalls "false". 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 den Wert "true" haben, da sie beide standardmäßig sind, damit das System die Aktivität instanziieren kann. Wenn einer der beiden Werte "false" ist, kann er nicht instanziiert werden.

android:enableOnBackInvokedCallback
Mit diesem Flag kannst du Systemanimationen auf Aktivitätsebene aktivieren, die vorhergesagt werden sollen. Dadurch ist es einfacher, große Apps mit mehreren Aktivitäten zu vorausschauenden Touch-Gesten zu migrieren.

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

android:excludeFromRecents

Ob die durch diese Aktivität initiierte Aufgabe vom Bildschirm „Letzte“ ausgeschlossen ist. Wenn diese Aktivität also die Stammaktivität einer neuen Aufgabe ist, bestimmt dieses Attribut, ob die Aufgabe in der Liste der zuletzt verwendeten Apps angezeigt wird. Der Wert "true", 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:

  • Bei "true" ist die Aktivität für jede App zugänglich und kann über den genauen Klassennamen gestartet werden.
  • Wenn "false" festgelegt ist, 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. Das ist beispielsweise der Fall, wenn die Aktivität die Hauptaktivität der App ist und die category-android.intent.category.LAUNCHER enthält.

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

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

android:finishOnTaskLaunch
Ob eine vorhandene Instanz der Aktivität heruntergefahren wird, wenn der Nutzer mit Ausnahme der Root-Aktivität die Aufgabe neu startet, indem er die Aufgabe auf dem Startbildschirm auswählt. Ist er heruntergefahren, lautet der Wert "true", andernfalls "false". Der Standardwert ist "false".

Wenn sowohl dieses Attribut als auch allowTaskReparenting "true" sind, hat dieses Attribut Vorrang vor dem anderen. Die Affinität der Aktivität wird ignoriert. Die Aktivität wird nicht wieder übergeordnet, sondern gelöscht.

Dieses Attribut wird ignoriert, wenn FLAG_ACTIVITY_RESET_TASK_IF_NEEDED nicht festgelegt ist.

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

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

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

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, das die Aktivität repräsentiert. Das Symbol wird Nutzern angezeigt, wenn eine Darstellung der Aktivität auf dem Bildschirm erforderlich ist. Beispielsweise werden Symbole für Aktivitäten, die Aufgaben initiieren, im Launcher-Fenster angezeigt. Häufig wird neben einem Symbol ein Label angezeigt. Weitere Informationen zum Label finden Sie im Attribut android:label.

Dieses Attribut wird als Verweis auf eine Drawable-Ressource festgelegt, die die Bilddefinition enthält. Wenn es nicht festgelegt ist, wird stattdessen das Symbol verwendet, das für die Anwendung als Ganzes angegeben wurde. Weitere Informationen findest du im Attribut icon des <application>-Elements.

Das Symbol der Aktivität, das hier oder durch das Element <application> festgelegt wird, ist auch das Standardsymbol für alle Intent-Filter der Aktivität. Weitere Informationen findest du 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 "true" festgelegt ist, ist für das ActivityInfo.flags-Mitglied immer das Bit FLAG_IMMERSIVE gesetzt, auch wenn sich der komplexe Modus zur Laufzeit mit der Methode setImmersive() ä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 für die Nutzenden dargestellt 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 gesamte Anwendung festgelegt wurde. Weitere Informationen finden Sie im Attribut label des <application>-Elements.

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

Das Label wird als Verweis auf eine Stringressource festgelegt, damit es wie andere Strings in der Benutzeroberfläche lokalisiert werden kann. Der Einfachheit halber kann sie bei der Entwicklung der Anwendung aber auch als Rohstring 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 funktionieren, um zu bestimmen, was passiert, wenn die Aktivität zur Verarbeitung eines Intents aufgerufen wird:

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

Der Standardmodus ist "standard".

Wie in der folgenden Tabelle dargestellt, lassen sich die Modi in zwei Hauptgruppen unterteilen, wobei sich die Aktivitäten "standard" und "singleTop" auf der einen Seite und die Aktivitäten "singleTask", "singleInstance" und "singleInstancePerTask" auf der anderen Seite befinden. 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 beliebiger Stelle in der Aktivitätsaufgabe befinden. In der Regel werden sie in der Aufgabe mit dem Namen startActivity() gestartet, es sei denn, das Objekt Intent enthält eine FLAG_ACTIVITY_NEW_TASK-Anweisung. In diesem Fall wird eine andere Aufgabe ausgewählt. Weitere Informationen finden Sie unter dem Attribut taskAffinity.

Im Gegensatz dazu haben die Aktivitäten "singleTask", "singleInstance" und "singleInstancePerTask" ein anderes Verhalten. "singleInstancePerTask" ist immer die Basis der Aktivitätsaufgabe. Außerdem kann das Gerät jeweils nur eine Instanz der "singleInstance"-Aktivität enthalten. Die "singleInstancePerTask-Aktivität kann hingegen in verschiedenen Aufgaben mehrmals instanziiert werden, wenn FLAG_ACTIVITY_MULTIPLE_TASK oder FLAG_ACTIVITY_NEW_DOCUMENT festgelegt ist.

Eine Aktivität mit dem Startmodus "singleTask" kombiniert das Verhalten von "singleInstance" und "singleInstancePerTask": Die Aktivität kann mehrmals instanziiert werden und sich an beliebiger Stelle in einer Aufgabe derselben taskAffinity befinden. Auf dem Gerät kann jedoch nur eine Aufgabe gespeichert werden, um die "singleTask"-Aktivität im Stammverzeichnis der Aktivitätsaufgabe zu finden.

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

Wenn für die Zielaufgabe jedoch bereits eine Instanz der Aktivität an der Spitze ihres Stacks vorhanden ist, erhält diese Instanz den neuen Intent in einem onNewIntent()-Aufruf. Es wird keine neue Instanz erstellt. Wenn sich eine vorhandene Instanz der Aktivität "singleTop" in der Zielaufgabe, aber nicht an der Spitze des Stacks befindet oder sich an der Spitze eines Stacks, aber nicht in der Zielaufgabe befindet, wird eine neue Instanz erstellt und auf den Stack verschoben.

Ähnlich verhält es sich, wenn der Nutzer zu einer Aktivität auf dem aktuellen Stack navigiert: Der Startmodus der übergeordneten Aktivität wird bestimmt. Wenn die übergeordnete Aktivität den Startmodus singleTop hat (oder der Intent up FLAG_ACTIVITY_CLEAR_TOP enthält), wird die übergeordnete Aktivität an den Anfang des Stapels verschoben und ihr Status beibehalten.

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

Der "singleInstance"-Modus unterscheidet sich außerdem in nur einem Aspekt von "singleTask" und "singleInstancePerTask": Bei einer Aktivität mit dem Startmodus "singleTask" oder "singleInstancePerTask" können andere Aktivitäten zu der Aufgabe gehören, die notwendigerweise die Aktivitäten "standard" und "singleTop" sind.

Bei einer "singleInstance"-Aktivität hingegen können keine anderen Aktivitäten Teil ihrer Aufgabe sein. Es muss die einzige Aktivität in der Aufgabe sein. Wird eine andere Aktivität gestartet, wird diese einer anderen Aufgabe zugewiesen, als wäre FLAG_ACTIVITY_NEW_TASK im Intent enthalten.

Anwendungsfälle Startmodus Mehrere Instanzen? Kommentare
Normale Starts für die meisten Aktivitäten "standard" Ja Standard: Das System erstellt immer eine neue Instanz der Aktivität in der Zielaufgabe und leitet den Intent an diese weiter.
"singleTop" Bedingt Wenn eine Instanz der Aktivität bereits oben in der Zielaufgabe vorhanden ist, leitet das System den Intent über einen Aufruf der Methode onNewIntent() an diese Instanz weiter, anstatt eine neue Instanz der Aktivität zu erstellen.
Spezialisierte Markteinführungen
(nicht für die allgemeine Verwendung empfohlen)
"singleTask" Bedingt Das System erstellt die Aktivität am Stamm einer neuen Aufgabe oder lokalisiert die Aktivität für eine vorhandene Aufgabe mit der gleichen Affinität. Wenn eine Instanz der Aktivität bereits vorhanden ist und sich im Stammverzeichnis der Aufgabe befindet, leitet das System den Intent über einen Aufruf der Methode onNewIntent() an die vorhandene Instanz weiter, anstatt eine neue zu erstellen.
"singleInstance" Nein Entspricht "singleTask", mit dem Unterschied, dass das System keine anderen Aktivitäten in der Aufgabe startet, die die Instanz enthält. Die Aktivität ist immer das einzige und einzige Element 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 mehrfach in verschiedenen Aufgaben instanziiert werden.

Wie in der vorherigen Tabelle gezeigt, 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 gewählten Startmodus sollten Sie die Nutzerfreundlichkeit der Aktivität beim Start und beim Zurückkehren von anderen Aktivitäten und Aufgaben über die Schaltfläche „Zurück“ zu dieser Aktivität testen.

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

android:lockTaskMode
Damit wird festgelegt, wie das System diese Aktivität anzeigt, wenn das Gerät im Sperrmodus ausgeführt wird.

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

Wenn sich das System im Modus „Gesperrte Aufgabe“ befindet, können nur Apps ausgeführt werden, die von einem Device Policy Controller (DPC) auf die Zulassungsliste gesetzt wurden. System- und privilegierte Apps können jedoch im Modus „Gesperrte Aufgabe“ ausgeführt werden, ohne auf die Zulassungsliste gesetzt zu werden.

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

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

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

Hinweis:Dieser Modus ist nur für Systemanwendungen und privilegierte Anwendungen verfügbar. Nicht privilegierte Apps mit diesem Wert werden wie 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 beendet werden kann, wenn dies die letzte gesperrte Aufgabe ist. Wenn der DPC dieses Paket nicht autorisiert, ist dieser Modus mit normal identisch.
"always"

Aufgaben, die bei dieser Aktivität gerootet wurden, werden immer im Modus „Aufgaben sperren“ gestartet. Wenn sich das System beim Starten dieser Aufgabe bereits im Sperrmodus befindet, wird die neue Aufgabe zusätzlich zur aktuellen Aufgabe gestartet. In diesem Modus gestartete Aufgaben können durch Aufrufen von finish() beendet werden.

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

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

android:maxRecents
Die maximale Anzahl von Aufgaben auf dem Bildschirm „Letzte“, die dieser Aktivität zugeordnet sind. Wenn diese Anzahl von Einträgen erreicht ist, entfernt das System die zuletzt verwendete Instanz vom Bildschirm „Recents“ (Zuletzt verwendet). 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 bei der Aktivität unterstützt wird. Wenn die App auf einem Gerät mit einem breiteren Seitenverhältnis ausgeführt wird, wird die App automatisch im Letterbox-Format dargestellt, sodass Teile des Bildschirms ungenutzt bleiben und die App mit dem angegebenen maximalen Seitenverhältnis ausgeführt werden kann.

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

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

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

Weitere Informationen zu diesem Attribut findest du unter Maximales Seitenverhältnis angeben.

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

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

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

Ändern Sie diesen Namen nach der Veröffentlichung der Anwendung nicht, es sei denn, Sie legen android:exported="false" fest. Es gibt keine Standardeinstellung. Der Name muss angegeben werden.

android:noHistory
Gibt an, ob die Aktivität durch Aufrufen der finish()-Methode aus dem Aktivitäten-Stack entfernt und abgeschlossen wird, wenn der Nutzer sie verlässt und sie nicht mehr auf dem Bildschirm zu sehen ist. Ist sie abgeschlossen, ist es "true", andernfalls "false". Der Standardwert ist "false".

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

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

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

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 mit TaskStackBuilder einen Back-Stack von Aktivitäten zu synthetisieren.

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

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

Weitere Informationen dazu, wie Sie die übergeordnete Aktivität zur Unterstützung der Aufwärtsnavigation deklarieren, finden Sie unter Aufwärtsnavigation ermöglichen.

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

android:persistableMode

Definiert, wie eine Instanz einer Aktivität bei einem Geräteneustart in einer übergeordneten Aufgabe beibehalten wird.

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

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

Antwort Beschreibung
persistRootOnly

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

Wenn der Start-Intent deiner App die Root-Aktivität deiner App lädt, empfängt die Aktivität kein PersistableBundle-Objekt. Verwende onSaveInstanceState() daher nicht, um den Status der Root-Aktivität deiner App über einen Geräteneustart hinweg beizubehalten.

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

persistAcrossReboots

Der Status dieser Aktivität wird beibehalten, zusammen mit dem Status jeder Aktivität, die höher im Back-Stack liegt, deren eigenes persistableMode-Attribut auf persistAcrossReboots festgelegt ist. Wenn eine Aktivität kein persistableMode-Attribut hat, das auf persistAcrossReboots gesetzt ist, oder wenn sie mit dem Flag Intent.FLAG_ACTIVITY_NEW_DOCUMENT gestartet wird, werden diese Aktivität zusammen mit allen Aktivitäten, die weiter oben im Back-Stack stehen, nicht beibehalten.

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

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

persistNever

Der Status der Aktivität wird nicht gespeichert.

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

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

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

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

Weitere Informationen zu Berechtigungen finden Sie im Abschnitt Berechtigungen der App-Manifest-Übersicht 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 für die Anwendung erstellten Standardprozessnamen ausgeführt und Sie müssen dieses Attribut nicht verwenden. Bei Bedarf können Sie den Standardprozessnamen jedoch mit diesem Attribut überschreiben und Ihre Anwendungskomponenten auf mehrere Prozesse verteilen.

Beginnt der diesem Attribut zugewiesene Name mit einem Doppelpunkt (:), wird bei Bedarf ein neuer, auf die Anwendung beschränkter Prozess erstellt und die Aktivität wird in diesem Prozess ausgeführt.

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

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

android:relinquishTaskIdentity

Gibt an, ob die Aktivität ihre Aufgabenkennzeichnung auf eine übergeordnete Aktivität im Aufgabenstack verzichtet. Bei einer Aufgabe, bei der dieses Attribut auf "true" gesetzt ist, wird die Basis-Intent durch die der nächsten Aktivität in der Aufgabe ersetzt.

Wenn für die nächste Aktivität auch dieses Attribut auf "true" gesetzt ist, wird die Basis-Intent für jede Aktivität zurückgegeben, die sie in derselben Aufgabe startet. Dies wird für jede Aktivität fortgesetzt, bis eine Aktivität erkannt wird, für die dieses Attribut auf "false" gesetzt ist. Der Standardwert ist "false".

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

android:requireContentUriPermissionFromCaller

Gibt Berechtigungen an, die zum Starten dieser Aktivität beim Übergeben von Inhalts-URIs erforderlich sind. Der Standardwert ist none, d. h., es sind keine spezifischen Berechtigungen erforderlich. Wenn dieses Attribut festgelegt wird, wird der Aktivitätsaufruf anhand der Berechtigungen des Aufrufers eingeschränkt. Wenn der Aufrufer nicht die erforderlichen Berechtigungen hat, wird der Start der Aktivität über einen SecurityException verweigert.

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

Kann ein Stringwert sein, bei dem "\\;" verwendet wird, um Zeichen wie "\\n" oder "\\uxxxx" für ein Unicode-Zeichen zu maskieren.

Muss einer der folgenden konstanten Werte sein.

Konstante Antwort Beschreibung
Keine 0 Standardeinstellung. Es sind keine spezifischen Berechtigungen erforderlich.
lesen 1 Erzwingt, dass der Aufrufer Lesezugriff auf die übergebenen Inhalts-URIs hat.
readAndWrite 4 Erzwingt, dass der Aufrufer Lese- und Schreibzugriff auf die übergebenen Inhalts-URIs hat.
readOrWrite 3 Erzwingt den Aufrufer, entweder Lese- oder Schreibzugriff auf die übergebenen Inhalts-URIs zu haben.
Schreiben 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 du dieses Attribut auf "true" setzt, kann der Nutzer die Aktivität im Splitscreen-Modus oder im freien Format starten. Wenn du das Attribut auf "false" setzt, kann die App nicht für eine Mehrfensterumgebung getestet oder optimiert werden. Das System kann die Aktivität trotzdem in den Mehrfenstermodus versetzen, wenn der Kompatibilitätsmodus angewendet wird.

Wenn du dieses Attribut auf "false" setzt, ist das keine Garantie dafür, dass keine anderen Apps im Mehrfenstermodus auf dem Bildschirm sichtbar sind, z. B. in einem Bild im Bild oder auf anderen Displays. Daher bedeutet das Festlegen dieses Flags nicht, dass Ihre Anwendung 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 der Wert des Attributs standardmäßig auf "true" gesetzt.

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

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

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

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

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

android:screenOrientation

Die Ausrichtung der Aktivität auf dem Gerätedisplay.

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

Unter Android 12 (API-Level 31) und höher können Gerätehersteller einzelne Gerätebildschirme (z. B. das Tablet-Display eines faltbaren Geräts) so konfigurieren, dass die Ausrichtungsspezifikation ignoriert wird. Dadurch wird erzwungen, dass eine App, die als Hochformat festgelegt ist, auf Displays im Querformat aber mit Letterbox-Bild dargestellt wird. Dadurch wird sichergestellt, dass die App weiterhin ein Hochformat hat, sie aber für eine bessere Nutzerfreundlichkeit optimiert.

Bei dem Wert kann es sich um einen der folgenden Strings handeln:

"unspecified" Der Standardwert. Das System wählt die Ausrichtung aus. Die verwendete Richtlinie und damit auch die Entscheidungen, die in bestimmten Kontexten getroffen werden, können von Gerät zu Gerät unterschiedlich sein.
"behind" Dies hat dieselbe Ausrichtung wie die Aktivität, die sich unmittelbar darunter im Aktivitätenstapel befindet.
"landscape" Querformat: Das Display ist breiter als hoch.
"portrait" Hochformat (das Display ist höher als breit)
"reverseLandscape" Querformat mit entgegen der normalen Ausrichtung In API-Level 9 hinzugefügt.
"reversePortrait" Hochformat entgegen dem normalen Hochformat. In API-Level 9 hinzugefügt.
"sensorLandscape" Querformat. Je nach Gerätesensor kann es aber auch das normale oder das umgekehrte Querformat sein. Der Sensor wird auch dann verwendet, wenn der Benutzer die sensorbasierte Drehung gesperrt hat. In API-Level 9 hinzugefügt.
"sensorPortrait" Hochformat. Je nach Gerätesensor kann es jedoch auch das normale oder umgekehrtes Hochformat sein. Der Sensor wird auch dann verwendet, wenn der Benutzer die sensorbasierte Drehung gesperrt hat. Je nach Gerätekonfiguration ist eine Umdrehung jedoch möglicherweise nicht zulässig. In API-Level 9 hinzugefügt.
"userLandscape" Querformat, kann aber je nach Gerätesensor und den Einstellungen des Nutzers entweder normal oder umgekehrt sein. In API-Level 18 hinzugefügt.
"userPortrait" Hochformat. Je nach Gerätesensor und den Einstellungen des Nutzers kann es aber auch ein normales oder umgekehrtes Hochformat sein. Je nach Gerätekonfiguration ist eine Umdrehung jedoch möglicherweise nicht zulässig. In API-Level 18 hinzugefügt.
"sensor" Der Ausrichtungssensor des Geräts bestimmt die Ausrichtung. Die Ausrichtung des Displays hängt davon ab, wie der Nutzer das Gerät hält. Sie ändert sich, wenn der Nutzer das Gerät dreht. Einige Geräte drehen sich jedoch standardmäßig nicht in alle vier möglichen Ausrichtungen. Wenn Sie alle vier Ausrichtungen verwenden möchten, verwenden Sie "fullSensor". Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat.
"fullSensor" Der Ausrichtungssensor des Geräts bestimmt die Ausrichtung für jede der vier Ausrichtungen. Sie ähnelt "sensor", mit dem Unterschied, dass sie jede der vier möglichen Bildschirmausrichtungen zulässt, unabhängig davon, was das Gerät normalerweise unterstützt. Einige Geräte verwenden normalerweise beispielsweise kein umgekehrtes Hoch- oder Querformat, aber das ermöglicht diese Ausrichtungen. In API-Level 9 hinzugefügt.
"nosensor" Die Ausrichtung wird ohne Bezug auf einen Sensor zur physischen Ausrichtung bestimmt. Der Sensor wird ignoriert. Das Display dreht sich also nicht, wenn 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 dies wie user, ansonsten verhält es sich genauso wie fullSensor und ermöglicht jede der vier möglichen Bildschirmausrichtungen. In API-Level 18 hinzugefügt.
"locked" Sperrt die Ausrichtung auf die aktuelle Drehung, was auch immer der Fall ist. In API-Ebene 18 hinzugefügt.

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

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

android:showForAllUsers

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

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

android:stateNotNeeded
Gibt an, ob die Aktivität beendet und neu gestartet werden kann, ohne ihren Status gespeichert zu haben. Der Status lautet "true", wenn die Instanz ohne Bezug auf den vorherigen Status neu gestartet werden kann, und "false", wenn der vorherige Status erforderlich ist. Der Standardwert ist "false".

Bevor eine Aktivität vorübergehend heruntergefahren wird, um Ressourcen zu sparen, wird normalerweise ihre Methode onSaveInstanceState() aufgerufen. Bei 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, da die Aktivität zum ersten Mal gestartet wird.

Die Einstellung "true" bedeutet, dass die Aktivität ohne Beibehaltung neu gestartet werden kann. Die Aktivität, die auf dem Startbildschirm angezeigt wird, verwendet diese Einstellung beispielsweise, um dafür zu sorgen, 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 und zu derselben "Anwendung" aus Sicht des Nutzers. Die Affinität einer Aufgabe wird durch die Affinität ihrer Stammaktivität bestimmt.

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

Standardmäßig haben alle Aktivitäten in einer Anwendung die gleiche Affinität. Sie können dieses Attribut so festlegen, dass sie unterschiedlich gruppiert und sogar Aktivitäten, die in verschiedenen Anwendungen definiert wurden, innerhalb derselben Aufgabe platziert werden. Wenn Sie angeben möchten, dass die Aktivität keine Affinität zu einer Aufgabe hat, geben Sie einen leeren String an.

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

android:theme
Eine Referenz zu einer Stilressource, die ein übergeordnetes Thema der Aktivität definiert. Dadurch wird der Kontext der Aktivität automatisch so festgelegt, dass dieser theme verwendet wird. Außerdem kann es zu Startanimationen kommen, bevor die Aktivität gestartet wird, damit sie besser dem tatsächlichen Aussehen der Aktivität entsprechen.

Wenn dieses Attribut nicht festgelegt ist, übernimmt die Aktivität den Themensatz für die Anwendung als Ganzes aus dem Attribut theme des <application>-Elements. Wenn dieses Attribut ebenfalls nicht festgelegt ist, wird das Standardsystemdesign 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.

AntwortBeschreibung
"none"Keine zusätzlichen UI-Optionen. Das ist die Standardeinstellung.
"splitActionBarWhenNarrow"Hiermit wird am unteren Bildschirmrand eine Leiste hinzugefügt, um Aktionselemente in der App-Leiste (auch als Aktionsleiste bezeichnet) anzuzeigen, wenn der horizontale Platz eingeschränkt ist, z. B. im Hochformat auf einem Mobilgerät. Anstelle einer kleinen Anzahl von Aktionselementen, die in der App-Leiste oben auf dem Bildschirm angezeigt werden, wird die App-Leiste in den oberen Navigationsabschnitt und die untere Leiste für Aktionselemente unterteilt. Das bedeutet, dass nicht nur für die Aufgaben, sondern auch für die Navigation und die Titelelemente oben ein angemessener Platz zur Verfügung steht. Die Menüoptionen sind nicht auf die beiden Balken verteilt. Sie werden immer zusammen angezeigt.

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

Dieses Attribut wurde in API-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 Softtastatur 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 Softtastatur oder den Inhalt zu schaffen, damit der aktuelle Fokus sichtbar wird, wenn ein Teil des Fensters von der Softtastatur 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" ... >

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

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

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

"stateUnchanged" Die Softtastatur wird in dem Status beibehalten, in dem sie zuletzt angezeigt wurde, also sichtbar oder verborgen, wenn die Aktivität in den Vordergrund rückt.
"stateHidden" Die Softtastatur wird ausgeblendet, wenn der Nutzer die Aktivität auswählt, also wenn der Nutzer aktiv zur Aktivität vorwärts navigiert, anstatt beim Verlassen einer anderen Aktivität zu ihr zurückzukehren.
"stateAlwaysHidden" Die Softtastatur ist immer ausgeblendet, wenn das Hauptfenster der Aktivität den Eingabefokus aufweist.
"stateVisible" Die Bildschirmtastatur wird eingeblendet, wenn der Nutzer die Aktivität auswählt, also aktiv zur Aktivität vorwärts navigiert, anstatt beim Verlassen einer anderen Aktivität zu ihr zurückzukehren.
"stateAlwaysVisible" Die Bildschirmtastatur ist sichtbar, wenn das Fenster den Eingabefokus erhält.
"adjustUnspecified" Ob die Größe des Hauptfensters der Aktivität angepasst wird, um Platz für die Softtastatur zu schaffen, oder der Inhalt des Fensters, um den aktuellen Fokus auf dem Bildschirm sichtbar zu machen, ist nicht angegeben. Das System wählt automatisch einen dieser Modi aus, je nachdem, ob der Inhalt des Fensters Layoutansichten hat, in denen zum Inhalt gescrollt werden kann. Ist eine solche Ansicht vorhanden, wird die Größe des Fensters unter der Annahme angepasst, dass durch Scrollen der gesamte Inhalt des Fensters in einem kleineren Bereich sichtbar werden kann.

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

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

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

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