- Syntax:
<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:canDisplayOnRemoteDevices=["true" | "false"] android:clearTaskOnLaunch=["true" | "false"] android:colorMode=[ "hdr" | "wideColorGamut"] android:configChanges=["colorMode", "density", "fontScale", "fontWeightAdjustment", "grammaticalGender", "keyboard", "keyboardHidden", "layoutDirection", "locale", "mcc", "mnc", "navigation", "orientation", "screenLayout", "screenSize", "smallestScreenSize", "touchscreen", "uiMode"] android:directBootAware=["true" | "false"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:enableOnBackInvokedCallback=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:immersive=["true" | "false"] android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"] android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance" | "singleInstancePerTask"] android:lockTaskMode=["normal" | "never" | "if_whitelisted" | "always"] android:maxRecents="integer" android:maxAspectRatio="float" android:minAspectRatio="float" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:persistableMode=["persistRootOnly" | "persistAcrossReboots" | "persistNever"] android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:requireContentUriPermissionFromCaller=["none" | "read" | "readAndWrite" | "readOrWrite" | "write"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:showForAllUsers=["true" | "false"] android:stateNotNeeded=["true" | "false"] android:supportsPictureInPicture=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > ... </activity>
- Enthalten in:
<application>- kann Folgendes enthalten:
<intent-filter><meta-data><layout><property>- Beschreibung:
- Deklariert eine Aktivität (eine
Activity-Unterklasse), die einen Teil der visuellen Benutzeroberfläche der Anwendung implementiert. Alle Aktivitäten müssen in der Manifestdatei durch<activity>-Elemente dargestellt werden. Alle, die dort nicht deklariert sind, werden vom System nicht erkannt und nie ausgeführt. - Attribute:
android:allowEmbedded-
Gibt an, dass die Aktivität als eingebettetes untergeordnetes Element einer anderen Aktivität gestartet werden kann, insbesondere wenn sich das untergeordnete Element in einem Container befindet, z. B. in einem
Display, das einer anderen Aktivität gehört. Aktivitäten, die für benutzerdefinierte Wear-Benachrichtigungen verwendet werden, deklarieren dies beispielsweise, damit Wear die Aktivität in seinem Kontextstream anzeigen kann, der sich in einem anderen Prozess befindet.Der Standardwert dieses Attributs ist
false. android:allowTaskReparenting- Gibt an, ob die Aktivität von der Aufgabe, die sie gestartet hat, zu der Aufgabe wechseln kann, für die sie eine Affinität hat, wenn diese Aufgabe als Nächstes in den Vordergrund gerückt wird.
"true", wenn sie sich bewegen kann, und"false", wenn sie bei der Aufgabe bleibt, bei der sie begonnen hat.Wenn dieses Attribut nicht festgelegt ist, gilt der Wert, der durch das entsprechende
allowTaskReparenting-Attribut des<application>-Elements festgelegt wurde. Der Standardwert ist"false".Normalerweise wird eine Aktivität, wenn sie gestartet wird, mit der Aufgabe der Aktivität verknüpft, die sie gestartet hat, und bleibt dort für ihre gesamte Lebensdauer. Mit diesem Attribut können Sie erzwingen, dass die Aktivität dem Task untergeordnet wird, für den sie eine Affinität hat, wenn ihr aktueller Task nicht mehr angezeigt wird. Normalerweise wird damit bewirkt, dass die Aktivitäten einer Anwendung zur Hauptaufgabe der Anwendung verschoben werden.
Wenn eine E‑Mail-Nachricht beispielsweise einen Link zu einer Webseite enthält, wird durch Klicken auf den Link eine Aktivität aufgerufen, die die Seite anzeigen kann. Diese Aktivität wird von der Browseranwendung definiert, wird aber im Rahmen der E-Mail-Aufgabe gestartet. Wenn sie dem Browser-Task untergeordnet ist, wird sie angezeigt, wenn der Browser als Nächstes in den Vordergrund kommt, und nicht, wenn der E-Mail-Task wieder in den Vordergrund kommt.
Die Affinität einer Aktivität wird durch das Attribut
taskAffinitydefiniert. Die Affinität einer Aufgabe wird durch Lesen der Affinität der zugehörigen Stammaktivität bestimmt. Daher befindet sich eine Stammaktivität per Definition immer in einer Aufgabe mit derselben Affinität. Da Aktivitäten mit den Launch-Modi"singleTask"oder"singleInstance"nur im Stamm eines Tasks ausgeführt werden können, ist die Neuzuordnung auf die Modi"standard"und"singleTop"beschränkt. (Siehe auch das AttributlaunchMode.) android:alwaysRetainTaskState- Gibt an, ob der Status der Aufgabe, zu der die Aktivität gehört, immer vom System verwaltet wird.
"true", falls dies der Fall ist, und"false", wenn das System die Aufgabe in bestimmten Situationen auf den Ausgangszustand zurücksetzen kann. Der Standardwert ist"false". Dieses Attribut ist nur für die Stammaktivität einer Aufgabe relevant. Bei allen anderen Aktivitäten wird es ignoriert.Normalerweise löscht das System eine Aufgabe und entfernt alle Aktivitäten aus dem Stapel über der Stammaktivität, wenn der Nutzer diese Aufgabe in bestimmten Situationen auf dem Startbildschirm neu auswählt. Normalerweise geschieht dies, wenn der Nutzer die Aufgabe für einen bestimmten Zeitraum, z. B. 30 Minuten, nicht besucht hat.
Wenn dieses Attribut jedoch
"true"ist, kehren Nutzer immer zum letzten Status der Aufgabe zurück, unabhängig davon, wie sie dorthin gelangen. Das ist nützlich in Anwendungen wie Webbrowsern, in denen es viele Status gibt, z. B. mehrere offene Tabs, die Nutzer nicht verlieren möchten. android:autoRemoveFromRecents- Gibt an, ob Aufgaben, die von der Aktivität mit diesem Attribut gestartet wurden, auf dem Bildschirm „Letzte“ verbleiben, bis die letzte Aktivität in der Aufgabe abgeschlossen ist. Wenn
true, wird die Aufgabe automatisch vom Bildschirm „Letzte“ entfernt. Dadurch wird die Verwendung vonFLAG_ACTIVITY_RETAIN_IN_RECENTSdurch den Aufrufer überschrieben. Es muss ein boolescher Wert sein, entweder"true"oder"false". android:banner- Eine zeichenfähige Ressource, die ein erweitertes grafisches Banner für das zugehörige Element bereitstellt. Verwenden Sie es mit dem Tag
<activity>, um ein Standardbanner für eine bestimmte Aktivität bereitzustellen, oder mit dem Tag<application>, um ein Banner für alle Anwendungsaktivitäten bereitzustellen.Das System verwendet das Banner, um eine App auf dem Android TV-Startbildschirm darzustellen. Da das Banner nur auf dem Startbildschirm angezeigt wird, wird es nur von Anwendungen mit einer Aktivität angegeben, die den Intent
CATEGORY_LEANBACK_LAUNCHERverarbeitet.Dieses Attribut wird als Referenz auf eine zeichenfähige Ressource festgelegt, die das Bild enthält, z. B.
"@drawable/banner". Es gibt keinen Standardbanner.Weitere Informationen finden Sie unter Banner für den Startbildschirm bereitstellen im Leitfaden „Erste Schritte mit TV-Apps“.
android:canDisplayOnRemoteDevices-
Gibt an, ob die Aktivität auf einem Remote-Gerät angezeigt werden kann, auf dem möglicherweise Android ausgeführt wird. Es muss ein boolescher Wert sein, entweder
"true"oder"false".Der Standardwert dieses Attributs ist
"true". android:clearTaskOnLaunch- Ob alle Aktivitäten aus dem Task entfernt werden, mit Ausnahme der Stammaktivität, wenn er über den Startbildschirm neu gestartet wird.
"true", wenn die Aufgabe immer auf ihre Stammaktivität reduziert wird, und"false", wenn nicht. Der Standardwert ist"false". Dieses Attribut ist nur für Aktivitäten relevant, die eine neue Aufgabe starten, also die Stammaktivität. Bei allen anderen Aktivitäten in der Aufgabe wird sie ignoriert.Wenn der Wert
"true"ist, werden Nutzer bei jedem Start der Aufgabe zur zugehörigen Stammaktivität weitergeleitet, unabhängig davon, was sie zuletzt in der Aufgabe gemacht haben und ob sie die Zurück- oder die Startseite-Schaltfläche verwendet haben, um die Aufgabe zu verlassen. Wenn der Wert"false"ist, kann die Aufgabe in einigen Fällen von Aktivitäten befreit werden, aber nicht immer. Weitere Informationen finden Sie im AttributalwaysRetainTaskState.Angenommen, der Nutzer startet die Aktivität P über den Startbildschirm und wechselt von dort zur Aktivität Q. Als Nächstes tippt der Nutzer auf „Home“ und kehrt dann zur Aktivität P zurück. Normalerweise sieht der Nutzer Aktivität Q, da er zuletzt die Aufgabe von P ausgeführt hat. Wenn P dieses Flag jedoch auf
"true"setzt, werden alle Aktivitäten darüber – in diesem Fall Q – entfernt, wenn der Nutzer die Aktivität P über den Startbildschirm startet. Wenn der Nutzer zur Aufgabe zurückkehrt, sieht er also nur P.Wenn sowohl dieses Attribut als auch
allowTaskReparentingauf"true"festgelegt sind, werden alle Aktivitäten, die neu zugeordnet werden können, in die Aufgabe verschoben, mit der sie eine Affinität haben. Die verbleibenden Aktivitäten werden dann verworfen.Dieses Attribut wird ignoriert, wenn
FLAG_ACTIVITY_RESET_TASK_IF_NEEDEDnicht festgelegt ist. android:colorModeGibt den Farbmodus der Aktivität an. Falls angegeben, kann der Wert entweder
hdroderwideColorGamutsein.Wenn
hdr, wird angefordert, dass die Aktivität in einem hohen Dynamikbereich angezeigt wird, sofern das Gerät dies unterstützt.Wenn
wideColorGamut, werden Anfragen gestellt, dass die Aktivität auf kompatiblen Geräten im Modus mit breiter Farbskala angezeigt wird. Im Modus mit breitem Farbspektrum kann ein Fenster außerhalb desSRGB-Farbspektrums gerendert werden, um lebendigere Farben darzustellen. Wenn das Gerät die Darstellung mit großem Farbraum nicht unterstützt, hat dieses Attribut keine Auswirkungen. Weitere Informationen zum Rendern im Wide-Color-Modus finden Sie unter Grafiken mit Wide-Color-Inhalt optimieren.android:configChanges- Listet Konfigurationsänderungen auf, die von der Aktivität selbst verarbeitet werden. Wenn zur Laufzeit eine Konfigurationsänderung erfolgt, wird die Aktivität standardmäßig beendet und neu gestartet. Wenn Sie jedoch eine Konfiguration mit diesem Attribut deklarieren, wird verhindert, dass die Aktivität neu gestartet wird. Stattdessen wird die Aktivität weiter ausgeführt und ihre
onConfigurationChanged()-Methode wird aufgerufen.Hinweis:Verwenden Sie dieses Attribut nur in Sonderfällen, um die Leistung und Reaktionsfähigkeit der Anwendung zu verbessern. Weitere Informationen finden Sie unter Konfigurationsänderungen verarbeiten.
Die folgenden Strings sind gültige Werte für dieses Attribut. Mehrere Werte werden durch
|getrennt, z. B."locale|navigation|orientation".Wert Beschreibung "colorMode"Die Farbmodusfunktionen des Displays (Farbskala oder dynamischer Bereich) haben sich geändert.
Hinweis:Der Farbmodus, der in den Aktivitätsanfragen mit dem Attribut
colorModeoder zur Laufzeit angefordert wird, unterscheidet sich von der Funktion für verschiedene Farbmodi. Wenn eine Aktivität den verwendeten Farbmodus ändert, führt dies nicht zu einer Konfigurationsänderung, da sich die Farbfunktionen des Displays nicht geändert haben."density"Eine Änderung des Kompaktheitsgrads, z. B. wenn der Nutzer einen anderen Skalierungsfaktor für das Display angibt oder ein anderes Display aktiv ist.
In API-Ebene 24 hinzugefügt.
"fontScale"Eine Änderung des Schriftart-Skalierungsfaktors, z. B. wenn der Nutzer eine neue globale Schriftgröße auswählt. "fontWeightAdjustment"Die Schriftstärke wurde geändert. "grammaticalGender"Das grammatische Geschlecht der Sprache hat sich geändert. Weitere Informationen finden Sie unter GrammaticalInflectionManager.In API-Level 34 hinzugefügt.
"keyboard"Eine Änderung des Tastaturtyps, z. B. wenn der Nutzer eine externe Tastatur anschließt. "keyboardHidden"Eine Änderung der Tastatur-Bedienungshilfe, z. B. wenn der Nutzer die Hardwaretastatur einblendet. "layoutDirection"Eine Änderung der Layoutrichtung, z. B. von links nach rechts (LTR) zu rechts nach links (RTL).
In API-Level 17 hinzugefügt.
"locale"Eine Änderung des Gebietsschemas, z. B. wenn der Nutzer eine neue Sprache auswählt, in der Text angezeigt wird. "mcc"Eine Änderung des MCC (Mobile Country Code) der IMSI, wenn eine SIM-Karte erkannt wird, die den MCC aktualisiert. "mnc"Eine Änderung des IMSI-Mobilfunknetzcodes (Mobile Network Code, MNC), wenn eine SIM-Karte erkannt wird, die den MNC aktualisiert. "navigation"TA-Änderung des Navigationstyps (Trackball oder Steuerkreuz). Normalerweise passiert das nicht. "orientation"Eine Änderung der Bildschirmausrichtung, z. B. wenn der Nutzer das Gerät dreht.
Hinweis:Wenn Ihre Anwendung auf Android 3.2 (API-Level 13) oder höher ausgerichtet ist, deklarieren Sie auch die Konfigurationen
"screenLayout"und"screenSize", da sich das Bildschirmlayout und die Bildschirmgröße ändern können, wenn ein Gerät zwischen Hoch- und Querformat wechselt."screenLayout"Eine Änderung des Bildschirmlayouts, z. B. wenn ein anderes Display aktiviert wird. "screenSize"Eine Änderung der aktuell verfügbaren Bildschirmgröße.
Dies entspricht einer Änderung der aktuell verfügbaren Größe im Verhältnis zum aktuellen Seitenverhältnis. Sie ändert sich also, wenn der Nutzer zwischen Quer- und Hochformat wechselt.
In API-Level 13 hinzugefügt.
"smallestScreenSize"Eine Änderung der physischen Bildschirmgröße.
Dies entspricht einer Größenänderung unabhängig von der Ausrichtung. Die Größe ändert sich also nur, wenn sich die tatsächliche physische Bildschirmgröße ändert, z. B. beim Wechsel zu einem externen Display. Eine Änderung an dieser Konfiguration entspricht einer Änderung an der
smallestWidth-Konfiguration.In API-Level 13 hinzugefügt.
"touchscreen"Eine Änderung des Touchscreen-Modus, z. B. wenn der Nutzer ein Eingabegerät anschließt oder trennt oder die App auf einen anderen Bildschirm verschiebt. "uiMode"Eine Änderung des Benutzeroberflächenmodus, z. B. wenn der Nutzer das Gerät in ein Dock auf dem Schreibtisch oder im Auto legt oder der Nachtmodus geändert wird. Weitere Informationen zu den verschiedenen Benutzeroberflächenmodi finden Sie unter UiModeManager.In API-Level 8 hinzugefügt.
Alle diese Konfigurationsänderungen können sich auf die von der Anwendung angezeigten Ressourcenwerte auswirken. Wenn
onConfigurationChanged()aufgerufen wird, ist es daher in der Regel erforderlich, alle Ressourcen, einschließlich Ansichtslayouts und Drawables, noch einmal abzurufen, um die Änderung korrekt zu verarbeiten.Hinweis:Verwenden Sie sowohl
"screenLayout"als auch"smallestScreenSize", um Konfigurationsänderungen im Zusammenhang mit Multi-Window zu verarbeiten. Der Mehrfenstermodus wird in Android 7.0 (API-Level 24) oder höher unterstützt. android:directBootAwareGibt an, ob die Aktivität Direct-Boot-fähig ist, d. h., ob sie ausgeführt werden kann, bevor der Nutzer das Gerät entsperrt.
Hinweis : Während des Direktstarts kann eine Aktivität in Ihrer Anwendung nur auf die Daten zugreifen, die im geräteschutzgesicherten Speicher gespeichert sind.
Der Standardwert ist
"false".android:documentLaunchMode- Gibt an, wie einer Aufgabe jedes Mal, wenn sie gestartet wird, eine neue Instanz einer Aktivität hinzugefügt wird.
Mit diesem Attribut kann der Nutzer mehrere Dokumente derselben Anwendung auf dem Bildschirm „Zuletzt verwendet“ sehen.
Dieses Attribut hat vier Werte, die beim Öffnen eines Dokuments mit der Anwendung die folgenden Auswirkungen haben:
Wert Beschreibung "intoExisting"Das System sucht nach einer Aufgabe, deren Basis-Intent ComponentNameund Daten-URI mit denen des startenden Intents übereinstimmen. Wenn das System eine solche Aufgabe findet, wird sie gelöscht und neu gestartet. Die Root-Aktivität erhält einen Aufruf vononNewIntent(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_DOCUMENTundFLAG_ACTIVITY_MULTIPLE_TASK."none"Für die Aktivität wird keine neue Aufgabe erstellt. Dies ist der Standardwert. Eine neue Aufgabe wird nur erstellt, wenn FLAG_ACTIVITY_NEW_TASKfestgelegt ist. Auf dem Bildschirm „Letzte“ wird die Aktivität wie standardmäßig behandelt: Für die App wird eine einzelne Aufgabe angezeigt, die mit der letzten Aktivität fortgesetzt wird, die der Nutzer aufgerufen hat."never"Die Aktivität wird nicht in einem neuen Dokument gestartet, auch wenn die Absicht FLAG_ACTIVITY_NEW_DOCUMENTenthält. Wenn Sie diese Einstellung festlegen, wird das Verhalten der FlagsFLAG_ACTIVITY_NEW_DOCUMENTundFLAG_ACTIVITY_MULTIPLE_TASKüberschrieben, falls eines dieser Flags in der Aktivität festgelegt ist. Auf dem Bildschirm „Letzte Apps“ wird dann eine einzelne Aufgabe für die App angezeigt, die mit der Aktivität fortgesetzt wird, die der Nutzer zuletzt aufgerufen hat.Hinweis:Bei anderen Werten als
"none"und"never"wird die Aktivität mitlaunchMode="standard"definiert. Wenn dieses Attribut nicht angegeben ist, wirddocumentLaunchMode="none"verwendet. android:enabled- Gibt an, ob die Aktivität vom System instanziiert werden kann.
"true", wenn das möglich ist, und"false", wenn nicht. Der Standardwert ist"true".Das
<application>-Element hat ein eigenesenabled-Attribut, das für alle Anwendungskomponenten, einschließlich Aktivitäten, gilt. Die Attribute<application>und<activity>müssen beide"true"sein, was standardmäßig der Fall ist, damit das System die Aktivität instanziieren kann. Wenn eine der beiden Variablen"false"ist, kann sie nicht instanziiert werden. android:enableOnBackInvokedCallbackMit diesem Flag können Sie intelligente Systemanimationen auf Aktivitätsebene deaktivieren.
Legen Sie
android:enableOnBackInvokedCallback=falsefest, um intelligente „Zurück“-Geste-Animationen auf Aktivitätsebene zu deaktivieren und das System anzuweisen, Aufrufe derOnBackInvokedCallback-Plattform-API zu ignorieren.android:excludeFromRecentsGibt an, ob die durch diese Aktivität initiierte Aufgabe vom Bildschirm „Letzte“ ausgeschlossen ist. Wenn diese Aktivität die Stammaktivität einer neuen Aufgabe ist, bestimmt dieses Attribut, ob die Aufgabe in der Liste der zuletzt verwendeten Apps angezeigt wird.
"true", wenn die Aufgabe aus der Liste ausgeschlossen ist, und"false", wenn sie enthalten ist. Der Standardwert ist"false".android:exportedGibt an, ob die Aktivität von Komponenten anderer Anwendungen gestartet werden kann:
- Wenn
"true", ist die Aktivität für jede App zugänglich und kann über ihren genauen Klassennamen gestartet werden. - Wenn
"false", kann die Aktivität nur von Komponenten derselben Anwendung, Anwendungen mit derselben Nutzer-ID oder privilegierten Systemkomponenten gestartet werden. Dies ist der Standardwert, wenn keine Intent-Filter vorhanden sind.
Wenn eine Aktivität in Ihrer App Intent-Filter enthält, legen Sie dieses Element auf
"true"fest, damit andere Apps sie starten können. Wenn die Aktivität beispielsweise die Hauptaktivität der App ist undcategoryenthält, wirdandroid.intent.category.LAUNCHERverwendet.Wenn dieses Element auf
"false"gesetzt ist und eine App versucht, die Aktivität zu starten, löst das System eineActivityNotFoundExceptionaus.Dieses Attribut ist nicht die einzige Möglichkeit, die Sichtbarkeit einer Aktivität für andere Anwendungen einzuschränken. Berechtigungen werden auch verwendet, um die externen Entitäten zu begrenzen, die die Aktivität aufrufen können. Weitere Informationen finden Sie unter dem Attribut
permission.- Wenn
android:finishOnTaskLaunch- Gibt an, ob eine vorhandene Instanz der Aktivität (mit Ausnahme der Stammaktivität) beendet wird, wenn der Nutzer die Aufgabe durch Auswahl auf dem Startbildschirm neu startet.
"true", wenn es heruntergefahren ist, und"false", wenn nicht. Der Standardwert ist"false".Wenn dieses Attribut und
allowTaskReparentingbeide"true"sind, hat dieses Attribut Vorrang. Die Affinität der Aktivität wird ignoriert. Die Aktivität wird nicht neu zugeordnet, sondern beendet.Dieses Attribut wird ignoriert, wenn
FLAG_ACTIVITY_RESET_TASK_IF_NEEDEDnicht festgelegt ist. android:hardwareAccelerated- Gibt an, ob das hardwarebeschleunigte Rendering für diese Aktivität aktiviert ist.
"true", wenn sie aktiviert ist, und"false", wenn nicht. Der Standardwert ist"false".Unter Android 3.0 und höher ist für Anwendungen ein hardwarebeschleunigter OpenGL-Renderer verfügbar, um die Leistung bei vielen gängigen 2D-Grafikvorgängen zu verbessern. Wenn der hardwarebeschleunigte Renderer aktiviert ist, werden die meisten Vorgänge in Canvas, Paint, Xfermode, ColorFilter, Shader und Camera beschleunigt.
Das führt zu flüssigeren Animationen, einem flüssigeren Scrollen und einer insgesamt besseren Reaktionsfähigkeit, auch bei Anwendungen, die die OpenGL-Bibliotheken des Frameworks nicht explizit verwenden. Da für die Hardwarebeschleunigung mehr Ressourcen erforderlich sind, verbraucht Ihre App mehr RAM.
Nicht alle OpenGL-2D-Vorgänge werden beschleunigt. Wenn Sie den hardwarebeschleunigten Renderer aktivieren, testen Sie, ob Ihre Anwendung ihn fehlerfrei verwenden kann.
android:iconEin Symbol, das die Aktivität repräsentiert. Das Symbol wird Nutzern angezeigt, wenn eine Darstellung der Aktivität auf dem Bildschirm erforderlich ist. Im Launcher-Fenster werden beispielsweise Symbole für Aktivitäten angezeigt, die Aufgaben initiieren. Das Symbol wird oft von einem Label begleitet. Informationen dazu finden Sie im Attribut
android:label.Dieses Attribut wird als Referenz auf eine zeichenfähige Ressource festgelegt, die die Bilddefinition enthält. Wenn es nicht festgelegt ist, wird stattdessen das für die Anwendung als Ganzes angegebene Symbol verwendet. Weitere Informationen finden Sie im
icon-Attribut des<application>-Elements.Das Symbol der Aktivität, das entweder hier oder über das
<application>-Element festgelegt wird, ist auch das Standardsymbol für alle Intent-Filter der Aktivität. Weitere Informationen finden Sie im Attributicondes Elements<intent-filter>.android:immersive- Legt die Einstellung für den immersiven Modus für die aktuelle Aktivität fest. Wenn der Wert
"true"ist, ist dasFLAG_IMMERSIVE-Bit desActivityInfo.flags-Elements immer gesetzt, auch wenn sich der Immersive-Modus zur Laufzeit mit der MethodesetImmersive()ändert. android:intentMatchingFlags-
Mit diesem Attribut können Sie genauer festlegen, wie das System eingehende Intents mit App-Komponenten abgleicht. Standardmäßig werden keine speziellen Abgleichsregeln angewendet.
Der für ein
<activity>-Tag festgelegte Wert überschreibt den für das<application>-Tag festgelegten Wert.Der Wert muss einer oder mehrere der folgenden Flags sein, die durch „
|“ getrennt sind:Flag Beschreibung noneDeaktiviert alle speziellen Abgleichsregeln für eingehende Intents. Wenn Sie mehrere Flags angeben, werden widersprüchliche Werte aufgelöst, indem dem Flag noneVorrang eingeräumt wird.enforceIntentFilterErzwingt einen strengeren Abgleich für eingehende Intents:
- Explizite Intents müssen mit dem Intent-Filter der Zielkomponente übereinstimmen.
- Intents ohne Aktion entsprechen keinem Intent-Filter.
allowNullActionDie Abgleichsregeln werden gelockert, sodass auch Intents ohne Aktion abgeglichen werden können. Dieses Flag wird in Verbindung mit
enforceIntentFilterverwendet, um das folgende Verhalten zu erzielen:- Explizite Intents müssen mit dem Intent-Filter der Zielkomponente übereinstimmen.
- Intents ohne Aktion dürfen mit jedem Intent-Filter übereinstimmen.
Weitere Informationen finden Sie im Abschnitt Safer Intents (Sicherere Intents) unter „Verhaltensänderungen in Android 16 (API-Level 36)“.
android:labelEin für Nutzer lesbares Label für die Aktivität. Das Label wird auf dem Bildschirm angezeigt, wenn die Aktivität dem Nutzer präsentiert wird. Es wird oft zusammen mit dem Aktivitätssymbol angezeigt. Wenn dieses Attribut nicht festgelegt ist, wird stattdessen das für die gesamte Anwendung festgelegte Label verwendet. Weitere Informationen finden Sie im Attribut
labeldes Elements<application>.Das Label der Aktivität, das entweder hier oder durch das
<application>-Element festgelegt wird, ist auch das Standardlabel für alle Intent-Filter der Aktivität. Weitere Informationen finden Sie im Attributlabeldes Elements<intent-filter>.Das Label wird als Verweis auf eine String-Ressource festgelegt, damit es wie andere Strings in der Benutzeroberfläche lokalisiert werden kann. Während Sie die Anwendung entwickeln, kann sie jedoch auch als Raw-String festgelegt werden.
android:launchModeEine Anleitung zum Starten der Aktivität. Es gibt fünf Modi, die in Verbindung mit Aktivitäts-Flags (
FLAG_ACTIVITY_*-Konstanten) inIntent-Objekten bestimmen, was passiert, wenn die Aktivität aufgerufen wird, um einen Intent zu verarbeiten:"standard""singleTop""singleTask""singleInstance""singleInstancePerTask"Der Standardmodus ist
"standard".Wie in der folgenden Tabelle dargestellt, lassen sich die Modi in zwei Hauptgruppen einteilen:
"standard"- und"singleTop"-Aktivitäten auf der einen Seite und"singleTask"-,"singleInstance"- und"singleInstancePerTask"-Aktivitäten auf der anderen Seite. Eine Aktivität mit dem Startmodus"standard"oder"singleTop"kann mehrmals instanziiert werden.Die Instanzen können zu einer beliebigen Aufgabe gehören und sich an einer beliebigen Stelle in der Aktivitätsaufgabe befinden. Normalerweise werden sie in der Aufgabe gestartet, die
startActivity()aufgerufen hat, es sei denn, dasIntent-Objekt enthält eineFLAG_ACTIVITY_NEW_TASK-Anweisung. In diesem Fall wird eine andere Aufgabe ausgewählt. Weitere Informationen finden Sie im Artikel zum AttributtaskAffinity.Im Gegensatz dazu haben
"singleTask"-,"singleInstance"- und"singleInstancePerTask"-Aktivitäten unterschiedliche Verhaltensweisen."singleInstancePerTask"ist immer die Grundlage der Aktivitätsaufgabe. Außerdem kann das Gerät jeweils nur eine Instanz der Aktivität"singleInstance"enthalten, während die Aktivität"singleInstancePerTaskbei Festlegung vonFLAG_ACTIVITY_MULTIPLE_TASKoderFLAG_ACTIVITY_NEW_DOCUMENTmehrmals in verschiedenen Tasks instanziiert werden kann.Bei einer Aktivität mit dem Startmodus
"singleTask"werden die Verhaltensweisen von"singleInstance"und"singleInstancePerTask"kombiniert: Die Aktivität kann mehrmals instanziiert werden und sich an einer beliebigen Stelle in einer Aufgabe mit demselbentaskAffinitybefinden. Das Gerät kann jedoch nur eine Aufgabe zum Auffinden der"singleTask"-Aktivität im Stammverzeichnis der Aktivitätsaufgabe speichern.Die Modi
"standard"und"singleTop"unterscheiden sich in einem Punkt: Jedes Mal, wenn ein neuer Intent für eine"standard"-Aktivität vorhanden ist, wird eine neue Instanz der Klasse erstellt, um auf diesen Intent zu reagieren. Jede Instanz verarbeitet einen einzelnen Intent. Ebenso kann eine neue Instanz einer"singleTop"-Aktivität erstellt werden, um einen neuen Intent zu verarbeiten.Wenn die Zielaufgabe jedoch bereits eine Instanz der Aktivität oben im Stapel hat, empfängt diese Instanz den neuen Intent in einem
onNewIntent()-Aufruf. Es wird keine neue Instanz erstellt. Andernfalls – wenn sich eine vorhandene Instanz der"singleTop"-Aktivität im Ziel-Task, aber nicht oben im Stack befindet oder wenn sie sich oben in einem Stack, aber nicht im Ziel-Task befindet – wird eine neue Instanz erstellt und in den Stack eingefügt.Wenn der Nutzer nach oben zu einer Aktivität im aktuellen Stapel navigiert, wird das Verhalten durch den Startmodus der übergeordneten Aktivität bestimmt. Wenn die übergeordnete Aktivität den Startmodus
singleTophat oder derup-IntentFLAG_ACTIVITY_CLEAR_TOPenthält, wird die übergeordnete Aktivität an den Anfang des Stacks verschoben und ihr Status bleibt erhalten.Die Navigationsabsicht wird von der Methode
onNewIntent()der übergeordneten Aktivität empfangen. Wenn die übergeordnete Aktivität den Startmodusstandardhat und derup-Intent nichtFLAG_ACTIVITY_CLEAR_TOPenthält, werden die aktuelle Aktivität und ihr übergeordnetes Element aus dem Stack entfernt und eine neue Instanz der übergeordneten Aktivität wird erstellt, um den Navigations-Intent zu empfangen.Der Modus
"singleInstance"unterscheidet sich auch nur in einem Punkt von"singleTask"und"singleInstancePerTask": Eine Aktivität mit dem Startmodus"singleTask"oder"singleInstancePerTask"kann andere Aktivitäten, notwendigerweise"standard"- und"singleTop"-Aktivitäten, in ihre Aufgabe einbeziehen.Bei einer
"singleInstance"-Aktivität hingegen dürfen keine anderen Aktivitäten Teil der Aufgabe sein. Sie muss die einzige Aktivität in der Aufgabe sein. Wenn dadurch eine andere Aktivität gestartet wird, wird diese Aktivität einer anderen Aufgabe zugewiesen, als wäreFLAG_ACTIVITY_NEW_TASKim Intent enthalten.Anwendungsfälle Launch-Modus Mehrere Instanzen? Kommentare Normale Starts für die meisten Aktivitäten "standard"Ja Standard. Das System erstellt immer eine neue Instanz der Aktivität in der Zielaufgabe und leitet den Intent dorthin weiter. "singleTop"Bedingt Wenn oben im Ziel-Task bereits eine Instanz der Aktivität vorhanden ist, leitet das System die Absicht durch einen Aufruf der Methode onNewIntent()an diese Instanz weiter, anstatt eine neue Instanz der Aktivität zu erstellen.Spezialisierte Launches
(nicht für die allgemeine Verwendung empfohlen)"singleTask"Bedingt Das System erstellt die Aktivität im Stammverzeichnis einer neuen Aufgabe oder sucht die Aktivität in einer vorhandenen Aufgabe mit derselben Affinität. Wenn bereits eine Instanz der Aktivität vorhanden ist und sich im Stamm der Aufgabe befindet, leitet das System die Absicht über einen Aufruf der Methode onNewIntent()an die vorhandene Instanz weiter, anstatt eine neue zu erstellen."singleInstance"Nein Wie "singleTask", nur dass das System keine anderen Aktivitäten in der Aufgabe startet, in der sich die Instanz befindet. Die Aktivität ist immer das einzige Mitglied der zugehörigen Aufgabe."singleInstancePerTask"Bedingt Die Aktivität kann nur als Stammaktivität der Aufgabe ausgeführt werden, also als erste Aktivität, die die Aufgabe erstellt hat. Daher gibt es nur eine Instanz dieser Aktivität in einer Aufgabe. Die Aktivität kann jedoch in verschiedenen Aufgaben mehrmals instanziiert werden. Wie in der Tabelle oben dargestellt, ist
"standard"der Standardmodus und für die meisten Arten von Aktivitäten geeignet."singleTop"ist auch ein häufig verwendeter und nützlicher Startmodus für viele Arten von Aktivitäten. Die anderen Modi,"singleTask","singleInstance"und"singleInstancePerTask", sind für die meisten Anwendungen nicht geeignet. Das resultierende Interaktionsmodell ist für Nutzer wahrscheinlich ungewohnt und unterscheidet sich stark von den meisten anderen Anwendungen.Unabhängig vom gewählten Launch-Modus sollten Sie die Nutzerfreundlichkeit der Activity beim Start und beim Zurückkehren zu ihr über den Button „Zurück“ aus anderen Activities und Tasks testen.
Weitere Informationen zu Startmodi und ihrer Interaktion mit
Intent-Flags finden Sie unter Tasks und Backstack.android:lockTaskMode- Gibt an, wie das System diese Aktivität präsentiert, wenn das Gerät im Modus für gesperrte Aufgaben ausgeführt wird.
Unter Android können Aufgaben in einem immersiven, kioskähnlichen Modus ausgeführt werden, der als Modus „gesperrte Aufgabe“ bezeichnet wird. Wenn das System im Modus „Aufgabe sperren“ ausgeführt wird, können Gerätenutzer in der Regel keine Benachrichtigungen sehen, nicht auf Apps zugreifen, die nicht auf der Zulassungsliste stehen, und nicht zum Startbildschirm zurückkehren, es sei denn, die Home App steht auf der Zulassungsliste.
Nur Apps, die von einem Device Policy Controller (DPC) auf die Zulassungsliste gesetzt wurden, können ausgeführt werden, wenn sich das System im Modus „Aufgabe fixieren“ befindet. System- und privilegierte Apps können jedoch im Modus „Aufgabe sperren“ ausgeführt werden, ohne auf der Zulassungsliste zu stehen.
Der Wert kann einer der folgenden
R.attr.lockTaskMode-Stringwerte sein:Wert Beschreibung "normal"Standardwert. Das ist der Standardwert. Aufgaben werden nicht im Modus zum Sperren von Aufgaben gestartet, können aber durch Aufrufen von startLockTask()dort platziert werden."never"Aufgaben werden nicht im
lockTask-Modus gestartet und der Gerätenutzer kann diese Aufgaben nicht über den Bildschirm „Letzte“ anpinnen.Hinweis:Dieser Modus ist nur für System- und privilegierte Apps verfügbar. Nicht privilegierte Apps mit diesem Wert werden als
normalbehandelt."if_whitelisted"Wenn der DPC dieses Paket mit DevicePolicyManager.setLockTaskPackages()autorisiert, ist dieser Modus identisch mitalways. Die Aktivität muss jedochstopLockTask()aufrufen, bevor sie beendet werden kann, wenn sie die letzte gesperrte Aufgabe ist. Wenn der DPC dieses Paket nicht autorisiert, ist dieser Modus mitnormalidentisch."always"Aufgaben, die auf dieser Aktivität basieren, werden immer im Modus „Aufgabe sperren“ gestartet. Wenn sich das System bereits im Sperrmodus befindet, wenn diese Aufgabe gestartet wird, wird die neue Aufgabe über der aktuellen Aufgabe gestartet. Aufgaben, die in diesem Modus gestartet wurden, können den Modus „Aufgabe sperren“ durch Aufrufen von
finish()beenden.Hinweis:Dieser Modus ist nur für System- und privilegierte Apps verfügbar. Nicht privilegierte Apps mit diesem Wert werden als
normalbehandelt.Dieses Attribut wurde mit API-Level 23 eingeführt.
android:maxRecents- Die maximale Anzahl von Aufgaben, die in der Übersicht der zuletzt verwendeten Apps in dieser Aktivität verwurzelt sind. Wenn diese Anzahl von Einträgen erreicht ist, wird die zuletzt verwendete Instanz aus dem Bildschirm „Zuletzt verwendet“ entfernt. Gültige Werte sind Ganzzahlen von 1 bis 50 oder von 1 bis 25 auf Geräten mit wenig Arbeitsspeicher. Null ist ungültig. Der Standardwert ist 16.
android:maxAspectRatio-
Das maximale Seitenverhältnis, das von der Aktivität unterstützt wird.
Wenn die App auf einem Gerät mit einem breiteren Seitenverhältnis ausgeführt wird, wird sie automatisch letterboxed. Dabei bleiben Teile des Displays ungenutzt, damit die App mit dem angegebenen maximalen Seitenverhältnis ausgeführt werden kann.
Das maximale Seitenverhältnis wird als Dezimalform des Quotienten aus der längeren und der kürzeren Abmessung des Geräts angegeben. Wenn das maximale Seitenverhältnis beispielsweise 7:3 ist, legen Sie den Wert dieses Attributs auf 2,33 fest.
Auf anderen Geräten als Wearables muss der Wert dieses Attributs mindestens 1, 33 betragen. Auf Wearable-Geräten muss die Version mindestens 1.0 sein. Andernfalls wird der festgelegte Wert vom System ignoriert.
Weitere Informationen zu diesem Attribut finden Sie unter R.attr.maxAspectRatio.
android:minAspectRatio-
Das Mindestseitenverhältnis, das von der Aktivität unterstützt wird.
Wenn die App auf einem Gerät mit einem schmaleren Seitenverhältnis ausgeführt wird, wird sie automatisch letterboxed. Dabei bleiben Teile des Displays ungenutzt, damit die App mit dem angegebenen Mindestseitenverhältnis ausgeführt werden kann.
Das Mindestseitenverhältnis wird als Dezimalform des Quotienten aus der längeren und der kürzeren Seite des Geräts angegeben. Wenn das Seitenverhältnis des Displays beispielsweise 4:3 ist, legen Sie den Mindestwert für das Seitenverhältnis auf 1, 33 fest.
Der Wert muss größer oder gleich 1, 0 sein.Andernfalls wird der festgelegte Wert vom System ignoriert.
Weitere Informationen zu diesem Attribut finden Sie unter R.attr.minAspectRatio.
android:multiprocess- Gibt an, ob eine Instanz der Aktivität im Prozess der Komponente gestartet werden kann, die sie gestartet hat.
"true", wenn das möglich ist, und"false", wenn nicht. Der Standardwert ist"false".Normalerweise wird eine neue Instanz einer Aktivität im Prozess der Anwendung gestartet, die sie definiert hat. Alle Instanzen der Aktivität werden also im selben Prozess ausgeführt. Wenn dieses Flag jedoch auf
"true"gesetzt ist, können Instanzen der Aktivität in mehreren Prozessen ausgeführt werden. Das System kann dann Instanzen erstellen, wo immer sie verwendet werden, sofern die Berechtigungen dies zulassen. Das ist fast nie erforderlich oder wünschenswert. android:name- Der Name der Klasse, die die Aktivität implementiert, eine Unterklasse von
Activity. Der Attributwert ist normalerweise ein voll qualifizierter Klassenname, z. B."com.example.project.ExtracurricularActivity". Wenn das erste Zeichen des Namens ein Punkt ist, z. B.".ExtracurricularActivity", wird es an den in der Dateibuild.gradleangegebenen Namespace angehängt.Nachdem Sie Ihre Anwendung veröffentlicht haben, dürfen Sie diesen Namen nicht mehr ändern, es sei denn, Sie legen
android:exported="false"fest. Es gibt keine Standardeinstellung. Der Name muss angegeben werden. android:noHistory- Gibt an, ob die Aktivität aus dem Aktivitätsstack entfernt und beendet wird, indem ihre
finish()-Methode aufgerufen wird, wenn der Nutzer sie verlässt und sie nicht mehr auf dem Bildschirm zu sehen ist."true", wenn es abgeschlossen ist, und"false", wenn nicht. Der Standardwert ist"false".Ein Wert von
"true"bedeutet, dass die Aktivität keine historischen Spuren hinterlässt. Sie bleibt nicht im Aktivitätsstapel für die Aufgabe, sodass der Nutzer nicht zu ihr zurückkehren kann. In diesem Fall wirdonActivityResult()nie aufgerufen, wenn Sie eine andere Aktivität für ein Ergebnis aus dieser Aktivität starten.Dieses Attribut wurde in API-Ebene 3 eingeführt.
android:parentActivityName- Der Klassenname des logischen übergeordneten Elements der Aktivität. Der hier angegebene Name muss mit dem Klassennamen übereinstimmen, der dem
<activity>-Element im Attributandroid:namezugewiesen ist.Das System liest dieses Attribut, um zu bestimmen, welche Aktivität gestartet werden soll, wenn der Nutzer in der Aktionsleiste auf die Schaltfläche „Nach oben“ tippt. Das System kann diese Informationen auch verwenden, um einen Backstack von Aktivitäten mit
TaskStackBuilderzu erstellen.Zur Unterstützung der API-Levels 4 bis 16 können Sie die übergeordnete Aktivität auch mit einem
<meta-data>-Element deklarieren, das einen Wert für"android.support.PARENT_ACTIVITY"angibt:<activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" > <!-- Parent activity meta-data to support API level 4+ --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.app.MainActivity" /> </activity>
Weitere Informationen zum Deklarieren der übergeordneten Aktivität zur Unterstützung der Aufwärtsnavigation finden Sie unter Aufwärtsnavigation bereitstellen.
Dieses Attribut wurde mit API-Level 16 eingeführt.
android:persistableModeDefiniert, wie eine Instanz einer Aktivität in einer enthaltenden Aufgabe über Neustarts des Geräts hinweg beibehalten wird.
Wenn die Root-Aktivität einer Aufgabe den Wert dieses Attributs auf
persistRootOnlysetzt, wird nur die Root-Aktivität beibehalten. Andernfalls werden die Aktivitäten untersucht, die sich weiter oben im Backstack der Aufgabe befinden. Alle Aktivitäten, bei denen der Wert dieses Attributs aufpersistAcrossRebootsfestgelegt ist, werden beibehalten.Wenn Sie dieses Attribut verwenden, müssen Sie seinen Wert auf einen der folgenden Werte festlegen:
Wert Beschreibung persistRootOnlyStandardwert. Wenn das System neu gestartet wird, bleibt der Aktivitäts-Task erhalten, es wird aber nur der Start-Intent der Root-Aktivität verwendet.
Wenn durch den Start-Intent Ihrer App die Root-Aktivität Ihrer App geladen wird, empfängt die Aktivität kein
PersistableBundle-Objekt. Verwenden Sie daher nichtonSaveInstanceState()um den Status der Root-Aktivität Ihrer App bei einem Neustart des Geräts beizubehalten.Hinweis : Dieser Attributwert wirkt sich nur dann auf das Verhalten Ihrer App aus, wenn er für die Stammaktivität Ihrer App festgelegt ist.
persistAcrossRebootsDer Status dieser Aktivität wird beibehalten, ebenso wie der Status jeder Aktivität weiter oben im Backstack, deren
persistableMode-Attribut aufpersistAcrossRebootsgesetzt ist. Wenn für eine Aktivität keinpersistableMode-Attribut mit dem WertpersistAcrossRebootsfestgelegt ist oder sie mit dem FlagIntent.FLAG_ACTIVITY_NEW_DOCUMENTgestartet wird, wird diese Aktivität zusammen mit allen Aktivitäten weiter oben im Backstack nicht beibehalten.Wenn durch einen Intent eine Aktivität geladen wird, deren Attribut
persistableModein Ihrer App aufpersistAcrossRebootsfestgelegt ist, empfängt die Aktivität in ihrer MethodeonCreate()einPersistableBundle-Objekt. Daher können SieonSaveInstanceState()verwenden, um den Status einer Aktivität nach einem Neustart des Geräts beizubehalten, sofern das AttributpersistableModeaufpersistAcrossRebootsfestgelegt 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.
persistNeverDer Status der Aktivität wird nicht beibehalten.
Hinweis : Dieser Attributwert wirkt sich nur dann auf das Verhalten Ihrer App aus, wenn er für die Stammaktivität Ihrer App festgelegt ist.
Dieses Attribut wurde in API-Ebene 21 eingeführt.
android:permission- Der Name einer Berechtigung, die Clients benötigen, um die Aktivität zu starten oder anderweitig auf einen Intent zu reagieren. Wenn einem Aufrufer von
startActivity()oderstartActivityForResult()die angegebene Berechtigung nicht gewährt wird, wird seine Absicht nicht an die Aktivität übermittelt.Wenn dieses Attribut nicht festgelegt ist, gilt der Berechtigungssatz, der durch das Attribut
permissiondes Elements<application>für die Aktivität festgelegt ist. Wenn keines der Attribute festgelegt ist, ist die Aktivität nicht durch eine Berechtigung geschützt.Weitere Informationen zu Berechtigungen finden Sie im Abschnitt Berechtigungen in der Übersicht zum App-Manifest und unter Sicherheitstipps.
android:processDer Name des Prozesses, in dem die Aktivität ausgeführt wird. Normalerweise werden alle Komponenten einer Anwendung in einem Standardprozessnamen ausgeführt, der für die Anwendung erstellt wurde. Sie müssen dieses Attribut also nicht verwenden. Bei Bedarf können Sie den Standardprozessnamen jedoch mit diesem Attribut überschreiben und so die App-Komponenten auf mehrere Prozesse verteilen.
Wenn der Name, der diesem Attribut zugewiesen ist, mit einem Doppelpunkt (
:) beginnt, wird bei Bedarf ein neuer Prozess erstellt, der für die Anwendung privat ist, und die Aktivität wird in diesem Prozess ausgeführt.Wenn der Prozessname mit einem Kleinbuchstaben beginnt, wird die Aktivität in einem globalen Prozess mit diesem Namen ausgeführt, sofern sie die entsprechende Berechtigung hat. So können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, was den Ressourcenverbrauch verringert.
Mit dem Attribut
processdes Elements<application>kann ein anderer Standardprozessname für alle Komponenten festgelegt werden.android:relinquishTaskIdentityGibt an, ob die Aktivität ihre Aufgabenkennungen an eine Aktivität darüber im Aufgabenstapel übergibt. Bei einer Aufgabe, deren Stammaktivität dieses Attribut auf
"true"gesetzt hat, wird die Basis-Intentdurch die der nächsten Aktivität in der Aufgabe ersetzt.Wenn für die nächste Aktivität dieses Attribut ebenfalls auf
"true"gesetzt ist, wird die BasisIntentfür alle Aktivitäten verwendet, die in derselben Aufgabe gestartet werden. Das wird für jede Aktivität fortgesetzt, bis eine Aktivität gefunden wird, für die dieses Attribut auf"false"gesetzt ist. Der Standardwert ist"false".Wenn dieses Attribut auf
"true"gesetzt ist, darf die Aktivität auch dieActivityManager.TaskDescriptionverwenden, um Labels, Farben und Symbole auf dem Bildschirm „Zuletzt verwendet“ zu ändern.android:requireContentUriPermissionFromCaller-
Gibt die Berechtigungen an, die zum Starten dieser Aktivität beim Übergeben von Inhalts-URIs erforderlich sind. Der Standardwert ist
none, d. h. es sind keine speziellen Berechtigungen erforderlich. Wenn Sie dieses Attribut festlegen, wird der Aufruf von Aktivitäten basierend auf den Berechtigungen des Aufrufers eingeschränkt. Wenn der Aufrufer nicht die erforderlichen Berechtigungen hat, wird der Start der Aktivität über einSecurityExceptionabgelehnt.Die Durchsetzung gilt für Inhalts-URIs in
Intent.getData(),Intent.EXTRA_STREAMundIntent.getClipData().Kann ein Stringwert sein, wobei „\\;“ zum Maskieren von Zeichen wie „\\n“ oder „\\uxxxx“ für ein Unicode-Zeichen verwendet wird.
Muss einer der folgenden konstanten Werte sein.
Konstante Wert Beschreibung Keine 0 Standardmäßig sind keine besonderen Berechtigungen erforderlich. read 1 Erzwingt, dass der Aufrufer Lesezugriff auf die übergebenen Inhalts-URIs hat. readAndWrite 4 Erzwingt, dass der Aufrufer sowohl Lese- als auch Schreibzugriff auf die übergebenen Inhalts-URIs hat. readOrWrite 3 Erzwingt, dass der Aufrufer entweder Lese- oder Schreibzugriff auf die übergebenen Inhalts-URIs hat. write 2 Erzwingt, dass der Aufrufer Schreibzugriff auf die übergebenen Inhalts-URIs hat. android:resizeableActivity-
Gibt an, ob die App den Mehrfenstermodus unterstützt.
Sie können dieses Attribut entweder im Element
<activity>oder im Element<application>festlegen.Wenn Sie dieses Attribut auf
"true"festlegen, kann der Nutzer die Aktivität im Splitscreen- und Freiformmodus starten. Wenn Sie das Attribut auf"false"setzen, kann die App nicht für eine Umgebung mit Mehrfenstermodus getestet oder optimiert werden. Das System kann die Aktivität weiterhin im Mehrfenstermodus mit angewendetem Kompatibilitätsmodus ausführen.Wenn Sie dieses Attribut auf
"false"festlegen, wird nicht garantiert, dass im Mehrfenstermodus keine anderen Apps auf dem Bildschirm zu sehen sind, z. B. im Bild-im-Bild-Modus oder auf anderen Displays. Wenn Sie dieses Flag festlegen, bedeutet das also nicht, dass Ihre App exklusiven Zugriff auf Ressourcen hat.Wenn Ihre App auf API‑Level 24 oder höher ausgerichtet ist und Sie keinen Wert für dieses Attribut angeben, wird standardmäßig der Wert
"true"verwendet.Wenn Ihre App auf API-Level 31 oder höher ausgerichtet ist, funktioniert dieses Attribut auf kleinen und großen Bildschirmen unterschiedlich:
- Große Displays (sw >= 600 dp): Alle Apps unterstützen den Mehrfenstermodus. Das Attribut gibt an, ob die Größe einer App geändert werden kann, nicht ob die App den Mehrfenstermodus unterstützt. Wenn
resizeableActivity="false", wird die App bei Bedarf in den Kompatibilitätsmodus versetzt, um den Displayabmessungen zu entsprechen. - Kleine Bildschirme (sw < 600 dp): Wenn
resizeableActivity="true"und die Mindestbreite und Mindesthöhe der Activity den Anforderungen für den Mehrfenstermodus entsprechen, unterstützt die App den Mehrfenstermodus. WennresizeableActivity="false", unterstützt die App den Mehrfenstermodus unabhängig von der Mindestbreite und ‑höhe der Aktivität nicht.
Der Wert der Root-Aktivität einer Aufgabe wird auf alle zusätzlichen Aktivitäten angewendet, die in der Aufgabe gestartet werden. Wenn die Stammaktivität einer Aufgabe also die Größe ändern kann, behandelt das System alle anderen Aktivitäten in der Aufgabe als Aktivitäten, deren Größe geändert werden kann. Wenn die Stammaktivität nicht in der Größe angepasst werden kann, können auch die anderen Aktivitäten in der Aufgabe nicht in der Größe angepasst werden.
Hinweis:Der Wert der Root-Aktivität einer Aufgabe wird auf alle zusätzlichen Aktivitäten angewendet, die in der Aufgabe gestartet werden. Wenn die Root-Aktivität einer Aufgabe also die Größe ändern kann, behandelt das System alle anderen Aktivitäten in der Aufgabe als resizable. Wenn die Stammaktivität nicht in der Größe angepasst werden kann, können die anderen Aktivitäten in der Aufgabe auch nicht in der Größe angepasst werden.
- Große Displays (sw >= 600 dp): Alle Apps unterstützen den Mehrfenstermodus. Das Attribut gibt an, ob die Größe einer App geändert werden kann, nicht ob die App den Mehrfenstermodus unterstützt. Wenn
android:screenOrientationDie angeforderte Ausrichtung der Aktivität.
Wenn eine Aktivität den gesamten Bildschirm ausfüllt, dient die angeforderte Ausrichtung als Vorschlag, die Ausrichtung auf diesem Bildschirm an den angeforderten Wert anzupassen. Dies kann zu einer Ausrichtung führen, die sich von der physischen Ausrichtung des Bildschirms im Raum unterscheidet. Der Nutzer muss das Gerät dann drehen, um die App weiter verwenden zu können. Auf Geräten mit Android 12 (API-Level 31) und höher können Gerätehersteller einzelne Gerätebildschirme (z. B. den Tablet-großen Bildschirm eines faltbaren Geräts) so konfigurieren, dass diese Empfehlung ignoriert wird und stattdessen eine Aktivität in der bevorzugten Ausrichtung des Geräts mit Letterboxing dargestellt wird. Dadurch wird die Ausrichtung der Aktivität an die angeforderte Ausrichtung angepasst, ohne dass der Nutzer sein Gerät physisch drehen muss.
Im Multifenstermodus dient die angeforderte Ausrichtung nicht als Vorschlag für die Gesamtausrichtung. Wenn die Aktivität im Letterbox-Format dargestellt wird, wirkt sich die angeforderte Ausrichtung auf die Letterbox-Formatierung aus.
Der Wert kann einer der folgenden Strings sein:
"unspecified"Der Standardwert. Die Ausrichtung wird vom System festgelegt. Die Richtlinie, die verwendet wird, und damit die Entscheidungen, die in bestimmten Kontexten getroffen werden, können sich von Gerät zu Gerät unterscheiden. "behind"Dieselbe Ausrichtung wie die Aktivität, die sich direkt darunter im Aktivitätsstapel befindet. "landscape"Querformat (das Display ist breiter als hoch). "portrait"Hochformat (das Display ist höher als breit). "reverseLandscape"Querformat in der entgegengesetzten Richtung des normalen Querformats. In API-Level 9 hinzugefügt. "reversePortrait"Hochformat in der entgegengesetzten Richtung des normalen Hochformats. In API-Level 9 hinzugefügt. "sensorLandscape"Querformat-Ausrichtung, kann je nach Gerätesensor aber entweder normal oder umgekehrt sein. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. In API-Level 9 hinzugefügt. "sensorPortrait"Hochformat-Ausrichtung, kann je nach Gerätesensor aber auch normales oder umgekehrtes Hochformat sein. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. Je nach Gerätekonfiguration ist eine um 180 Grad gedrehte Ausrichtung jedoch möglicherweise nicht zulässig. In API-Level 9 hinzugefügt. "userLandscape"Querformat, das je nach Gerätesensor und Nutzereinstellung entweder normal oder umgekehrt sein kann. In API-Level 18 hinzugefügt. "userPortrait"Hochformat, kann aber je nach Gerätesensor und den Einstellungen des Nutzers normal oder umgekehrt sein. Je nach Gerätekonfiguration ist eine Drehung um 180 Grad jedoch möglicherweise nicht zulässig. In API-Level 18 hinzugefügt. "sensor"Der Sensor für die Geräteausrichtung bestimmt die Ausrichtung. Die Ausrichtung des Displays hängt davon ab, wie der Nutzer das Gerät hält. Sie ändert sich, wenn der Nutzer das Gerät dreht. Einige Geräte werden standardmäßig jedoch nicht in alle vier möglichen Ausrichtungen gedreht. Wenn Sie alle vier Ausrichtungen verwenden möchten, verwenden Sie "fullSensor". Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat."fullSensor"Der Sensor für die Geräteausrichtung bestimmt die Ausrichtung für jede der vier Ausrichtungen. Das ist ähnlich wie bei "sensor", nur dass hier alle vier möglichen Bildschirmausrichtungen zulässig sind, unabhängig davon, was das Gerät normalerweise unterstützt. Einige Geräte verwenden normalerweise beispielsweise nicht den umgekehrten Hoch- oder Querformatmodus, aber diese Option ermöglicht diese Ausrichtungen. In API-Level 9 hinzugefügt."nosensor"Die Ausrichtung wird ohne Bezug auf einen physischen Ausrichtungssensor bestimmt. Der Sensor wird ignoriert, sodass sich die Anzeige nicht daran orientiert, wie der Nutzer das Gerät bewegt. "user"Die aktuelle bevorzugte Ausrichtung des Nutzers. "fullUser"Wenn der Nutzer die sensorbasierte Drehung gesperrt hat, verhält sich diese Einstellung wie user. Andernfalls verhält sie sich wiefullSensorund ermöglicht alle vier möglichen Bildschirmausrichtungen. In API-Level 18 hinzugefügt."locked"Sperrt die Ausrichtung auf die aktuelle Drehung, unabhängig davon, wie sie aussieht. Hinzugefügt in API-Ebene 18. Hinweis:Wenn Sie einen der Werte für das Quer- oder Hochformat deklarieren, gilt dies als harte Anforderung für die Ausrichtung, in der die Aktivität ausgeführt wird. Der von Ihnen deklarierte Wert ermöglicht das Filtern nach Diensten wie Google Play, sodass Ihre Anwendung nur auf Geräten verfügbar ist, die die von Ihren Aktivitäten benötigte Ausrichtung unterstützen. Wenn Sie beispielsweise
"landscape","reverseLandscape"oder"sensorLandscape"deklarieren, ist Ihre Anwendung nur auf Geräten verfügbar, die das Querformat unterstützen.Deklarieren Sie außerdem explizit, dass Ihre Anwendung entweder das Hoch- oder das Querformat erfordert, indem Sie das Element
<uses-feature>verwenden, z. B.<uses-feature android:name="android.hardware.screen.portrait"/>. Dieses Filterverhalten wird von Google Play und anderen Diensten bereitgestellt, die es unterstützen. Die Plattform selbst steuert nicht, ob Ihre App installiert werden kann, wenn ein Gerät nur bestimmte Ausrichtungen unterstützt.android:showForAllUsers-
Gibt an, ob die Aktivität angezeigt wird, wenn der aktuelle Nutzer des Geräts ein anderer ist als der Nutzer, der die Aktivität gestartet hat. Sie können dieses Attribut auf einen Literalwert wie
"true"oder"false"festlegen oder auf ein Ressourcen- oder Themenattribut, das einen booleschen Wert enthält.Dieses Attribut wurde in API-Level 23 hinzugefügt.
android:stateNotNeeded- Gibt an, ob die Aktivität beendet und erfolgreich neu gestartet werden kann, ohne dass ihr Status gespeichert wurde.
"true", wenn es ohne Bezug auf den vorherigen Zustand neu gestartet werden kann, und"false", wenn der vorherige Zustand erforderlich ist. Der Standardwert ist"false".Normalerweise wird vor dem vorübergehenden Herunterfahren einer Aktivität zum Sparen von Ressourcen die Methode
onSaveInstanceState()aufgerufen. Mit dieser Methode wird der aktuelle Status der Aktivität in einemBundle-Objekt gespeichert, das dann anonCreate()übergeben wird, wenn die Aktivität neu gestartet wird. Wenn dieses Attribut auf"true"gesetzt ist, wirdonSaveInstanceState()möglicherweise nicht aufgerufen undonCreate()wirdnullanstelle vonBundleübergeben, wie es beim ersten Start der Aktivität der Fall ist.Die Einstellung
"true"bedeutet, dass die Aktivität ohne beibehaltenen Status neu gestartet werden kann. Die Aktivität, die den Startbildschirm anzeigt, verwendet diese Einstellung beispielsweise, um sicherzustellen, dass sie nicht entfernt wird, wenn sie aus irgendeinem Grund abstürzt. android:supportsPictureInPicture-
Gibt an, ob die Aktivität die Bild-im-Bild-Anzeige unterstützt.
android:taskAffinityDie Aufgabe, für die die Aktivität eine Affinität hat. Aktivitäten mit derselben Affinität gehören konzeptionell zur selben Aufgabe, aus Nutzersicht zur selben „Anwendung“. Die Affinität einer Aufgabe wird durch die Affinität ihrer Stammaktivität bestimmt.
Die Affinität bestimmt zwei Dinge: die Aufgabe, der die Aktivität untergeordnet wird (siehe das Attribut
allowTaskReparenting), und die Aufgabe, in der die Aktivität beim Start mit dem FlagFLAG_ACTIVITY_NEW_TASKenthalten ist.Standardmäßig haben alle Aktivitäten in einer Anwendung dieselbe Affinität. Sie können dieses Attribut festlegen, um sie anders zu gruppieren und sogar Aktivitäten, die in verschiedenen Anwendungen definiert sind, in derselben Aufgabe zu platzieren. Wenn Sie angeben möchten, dass die Aktivität keine Affinität zu einer Aufgabe hat, legen Sie sie auf einen leeren String fest.
Wenn dieses Attribut nicht festgelegt ist, übernimmt die Aktivität die für die Anwendung festgelegte Affinität. Weitere Informationen finden Sie im Attribut
taskAffinitydes Elements<application>. Der Name der Standardaffinität für eine Anwendung ist der Namespace, der in der Dateibuild.gradlefestgelegt ist.android:theme- Ein Verweis auf eine Stilressource, die ein allgemeines Design für die Aktivität definiert.
Dadurch wird der Kontext der Aktivität automatisch so festgelegt, dass dieses
themeverwendet wird. Außerdem kann es sein, dass vor dem Start der Aktivität „Start“-Animationen angezeigt werden, um besser zu dem zu passen, wie die Aktivität tatsächlich aussieht.Wenn dieses Attribut nicht festgelegt ist, übernimmt die Aktivität das Design, das für die gesamte Anwendung im Attribut
themedes Elements<application>festgelegt ist. Wenn dieses Attribut ebenfalls nicht festgelegt ist, wird das Standarddesign des Systems verwendet. Weitere Informationen finden Sie unter Stile und Designs. android:uiOptionsZusätzliche Optionen für die Benutzeroberfläche einer Aktivität. Muss einer der folgenden Werte sein.
Wert Beschreibung "none"Keine zusätzlichen UI-Optionen. Das ist die Standardeinstellung. "splitActionBarWhenNarrow"Fügt unten auf dem Bildschirm eine Leiste hinzu, in der Aktionen aus der App-Leiste (auch Aktionsleiste genannt) angezeigt werden, wenn der horizontale Platz begrenzt ist, z. B. im Hochformat auf einem Mobiltelefon. Statt einer kleinen Anzahl von Aktionen, die in der App-Leiste oben auf dem Bildschirm angezeigt werden, ist die App-Leiste in den oberen Navigationsbereich und die untere Leiste für Aktionen unterteilt. Das bedeutet, dass oben nicht nur für die Aktionsschaltflächen, sondern auch für Navigations- und Titelelemente ausreichend Platz ist. Menüpunkte werden nicht auf die beiden Leisten aufgeteilt. Sie werden immer zusammen angezeigt. Weitere Informationen zur App-Leiste finden Sie unter App-Leiste hinzufügen.
Dieses Attribut wurde in API-Ebene 14 hinzugefügt.
android:windowSoftInputMode- Wie das Hauptfenster der Aktivität mit dem Fenster interagiert, das die Bildschirmtastatur enthält. Die Einstellung für dieses Attribut wirkt sich auf zwei Dinge aus:
- Gibt an, ob die Bildschirmtastatur ausgeblendet oder sichtbar ist, wenn die Activity in den Fokus der Nutzer gerät.
- Ob das Hauptfenster der Aktivität verkleinert wird, um Platz für die Bildschirmtastatur zu schaffen, oder ob der Inhalt verschoben wird, damit der aktuelle Fokus sichtbar ist, wenn ein Teil des Fensters von der Bildschirmtastatur verdeckt wird.
Die Einstellung muss einer der Werte in der folgenden Tabelle oder eine Kombination aus einem
"state..."-Wert und einem"adjust..."-Wert sein. Wenn Sie mehrere Werte in einer der beiden Gruppen festlegen, z. B. mehrere"state..."-Werte, sind die Ergebnisse nicht definiert. Einzelne Werte werden durch einen senkrechten Strich (|) getrennt, wie im folgenden Beispiel zu sehen ist:<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
Hier festgelegte Werte (außer
"stateUnspecified"und"adjustUnspecified") überschreiben die im Theme festgelegten Werte.Wert Beschreibung "stateUnspecified"Es wird nicht angegeben, ob die Bildschirmtastatur ausgeblendet oder sichtbar ist. Das System wählt einen geeigneten Status aus oder verwendet die Einstellung im Theme. Dies ist die Standardeinstellung für das Verhalten der Bildschirmtastatur.
"stateUnchanged"Die Bildschirmtastatur behält den Status bei, den sie zuletzt hatte, als die Aktivität in den Vordergrund gerückt ist – sichtbar oder ausgeblendet. "stateHidden"Die Bildschirmtastatur wird ausgeblendet, wenn der Nutzer die Aktivität auswählt. Das heißt, wenn der Nutzer aktiv zur Aktivität navigiert und nicht zurückkehrt, nachdem er eine andere Aktivität verlassen hat. "stateAlwaysHidden"Die Bildschirmtastatur ist immer ausgeblendet, wenn das Hauptfenster der Aktivität den Eingabefokus hat. "stateVisible"Die Bildschirmtastatur wird angezeigt, wenn der Nutzer die Aktivität auswählt. Das heißt, wenn er aktiv zur Aktivität navigiert und nicht dorthin zurückkehrt, wenn er eine andere Aktivität verlässt. "stateAlwaysVisible"Die Bildschirmtastatur wird angezeigt, wenn das Fenster den Eingabefokus erhält. "adjustUnspecified"Es ist nicht festgelegt, ob die Größe des Hauptfensters der Aktivität angepasst wird, um Platz für die Bildschirmtastatur zu schaffen, oder ob der Inhalt des Fensters verschoben wird, damit der aktuelle Fokus auf dem Bildschirm sichtbar ist. Das System wählt automatisch einen dieser Modi aus, je nachdem, ob das Fenster Layoutansichten enthält, deren Inhalt gescrollt werden kann. Wenn es eine solche Ansicht gibt, wird die Größe des Fensters angepasst, da davon ausgegangen wird, dass der gesamte Inhalt des Fensters durch Scrollen in einem kleineren Bereich sichtbar gemacht werden kann. Dies ist die Standardeinstellung für das Verhalten des Hauptfensters.
"adjustResize"Das Hauptfenster der Activity wird immer so angepasst, dass auf dem Bildschirm Platz für die Bildschirmtastatur ist. "adjustPan"Das Hauptfenster der Aktivität wird nicht verkleinert, um Platz für die Bildschirmtastatur zu schaffen. Stattdessen wird der Inhalt des Fensters automatisch so verschoben, dass der aktuelle Fokus nie vom Keyboard verdeckt wird und Nutzer immer sehen können, was sie eingeben. Das ist in der Regel weniger wünschenswert als das Anpassen der Größe, da der Nutzer die Bildschirmtastatur möglicherweise schließen muss, um auf verdeckte Teile des Fensters zuzugreifen und mit ihnen zu interagieren. "adjustNothing"Das Hauptfenster der Aktivität wird nicht verkleinert oder geschwenkt, um Platz für die Bildschirmtastatur zu schaffen. Die Aktivität ist dafür verantwortlich, mithilfe der Fenstereinsetzungen Platz für die Tastatur zu schaffen. Bei Aktivitäten, die Fensterinsets korrekt verarbeiten, haben Sie so die größte Kontrolle darüber, wie die Inhalte des Fensters auf dem Bildschirm angezeigt werden. Dieses Attribut wurde in API-Ebene 3 eingeführt.
- Eingeführt in:
- API-Ebene 1 für alle Attribute außer
noHistoryundwindowSoftInputMode, die in API-Ebene 3 hinzugefügt wurden. - Siehe auch:
<application><activity-alias>
<Aktivität>
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2026-07-03 (UTC).
[null,null,["Zuletzt aktualisiert: 2026-07-03 (UTC)."],[],[]]