- syntax:
<activity android:allowEmbedded=["true" | "false"] android:allowTaskReparenting=["true" | "false"] android:alwaysRetainTaskState=["true" | "false"] android:autoRemoveFromRecents=["true" | "false"] android:banner="drawable resource" android:canDisplayOnRemoteDevices=["true" | "false"] android:clearTaskOnLaunch=["true" | "false"] android:colorMode=[ "hdr" | "wideColorGamut"] android:configChanges=["colorMode", "density", "fontScale", "fontWeightAdjustment", "grammaticalGender", "keyboard", "keyboardHidden", "layoutDirection", "locale", "mcc", "mnc", "navigation", "orientation", "screenLayout", "screenSize", "smallestScreenSize", "touchscreen", "uiMode"] android:directBootAware=["true" | "false"] android:documentLaunchMode=["intoExisting" | "always" | "none" | "never"] android:enabled=["true" | "false"] android:enabledOnBackInvokedCallback=["true" | "false"] android:excludeFromRecents=["true" | "false"] android:exported=["true" | "false"] android:finishOnTaskLaunch=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:immersive=["true" | "false"] android:label="string resource" android:launchMode=["standard" | "singleTop" | "singleTask" | "singleInstance" | "singleInstancePerTask"] android:lockTaskMode=["normal" | "never" | "if_whitelisted" | "always"] android:maxRecents="integer" android:maxAspectRatio="float" android:multiprocess=["true" | "false"] android:name="string" android:noHistory=["true" | "false"] android:parentActivityName="string" android:persistableMode=["persistRootOnly" | "persistAcrossReboots" | "persistNever"] android:permission="string" android:process="string" android:relinquishTaskIdentity=["true" | "false"] android:requireContentUriPermissionFromCaller=["none" | "read" | "readAndWrite" | "readOrWrite" | "write"] android:resizeableActivity=["true" | "false"] android:screenOrientation=["unspecified" | "behind" | "landscape" | "portrait" | "reverseLandscape" | "reversePortrait" | "sensorLandscape" | "sensorPortrait" | "userLandscape" | "userPortrait" | "sensor" | "fullSensor" | "nosensor" | "user" | "fullUser" | "locked"] android:showForAllUsers=["true" | "false"] android:stateNotNeeded=["true" | "false"] android:supportsPictureInPicture=["true" | "false"] android:taskAffinity="string" android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] > ... </activity>
- enthalten in:
<application>
- kann Folgendes enthalten:
<intent-filter>
<meta-data>
<layout>
- description:
- deklariert eine Aktivität (eine
Activity
-Unterklasse), die einen Teil der visuellen Benutzeroberfläche der Anwendung implementiert. Alle Aktivitäten müssen in der Manifestdatei durch<activity>
-Elemente dargestellt werden. Anzeigen, die dort nicht deklariert sind, werden vom System nicht erkannt und nie ausgeliefert. - attributes:
android:allowEmbedded
-
Gibt an, dass die Aktivität als eingebettetes untergeordnetes Element einer anderen Aktivität gestartet werden kann, insbesondere wenn sich das untergeordnete Element in einem Container befindet, z. B. in einem
Display
, das zu einer anderen Aktivität gehört. Beispielsweise wird dies für Aktivitäten deklariert, die für benutzerdefinierte Wear-Benachrichtigungen verwendet werden, damit Wear die Aktivität in seinem Kontextstream anzeigen kann, der sich in einem anderen Prozess befindet.Der Standardwert dieses Attributs ist
false
. android:allowTaskReparenting
- Ob die Aktivität von der Aufgabe, die sie gestartet hat, zu der Aufgabe verschoben werden kann, zu der sie eine Affinität hat, wenn diese Aufgabe als Nächstes angezeigt wird. Es ist
"true"
, wenn es sich bewegen kann, und"false"
, wenn es bei der Aufgabe bleibt, bei der es gestartet wurde.Wenn dieses Attribut nicht festgelegt ist, wird der Wert angewendet, der durch das entsprechende
allowTaskReparenting
-Attribut des<application>
-Elements festgelegt wurde. Der Standardwert ist"false"
.Normalerweise wird eine Aktivität beim Starten mit der Aufgabe der Aktivität verknüpft, die sie gestartet hat, und bleibt dort während der gesamten Lebensdauer. Mit diesem Attribut können Sie erzwingen, dass die Aufgabe der Aufgabe, zu der sie eine Affinität hat, neu zugeordnet wird, wenn die aktuelle Aufgabe nicht mehr angezeigt wird. In der Regel wird dies verwendet, um die Aktivitäten einer Anwendung zur Hauptaufgabe zu verschieben, die mit dieser Anwendung verknüpft ist.
Wenn eine E-Mail beispielsweise einen Link zu einer Webseite enthält, wird durch Klicken auf den Link eine Aktivität ausgelöst, durch die die Seite angezeigt wird. Diese Aktivität wird von der Browseranwendung definiert, aber im Rahmen der E-Mail-Aufgabe gestartet. Wenn die Verknüpfung mit der Browseraufgabe neu hergestellt wird, wird sie angezeigt, wenn der Browser das nächste Mal im Vordergrund ist, und ist nicht sichtbar, wenn die E-Mail-Aufgabe wieder in den Vordergrund rückt.
Die Affinität einer Aktivität wird durch das Attribut
taskAffinity
definiert. Die Affinität einer Aufgabe wird durch Lesen der Affinität ihrer übergeordneten Aktivität bestimmt. Daher befindet sich eine Stammaktivität per Definition immer in einer Aufgabe mit derselben Affinität. Da Aktivitäten mit den Startmodi"singleTask"
oder"singleInstance"
nur an der Wurzel einer Aufgabe sein können, ist die Neuzuordnung auf die Modi"standard"
und"singleTop"
beschränkt. Weitere Informationen finden Sie im Artikel zum AttributlaunchMode
. android:alwaysRetainTaskState
- Gibt an, ob der Status der Aufgabe, in der sich die Aktivität befindet, immer vom System verwaltet wird.
"true"
, wenn dies der Fall ist, und"false"
, wenn das System die Aufgabe in bestimmten Situationen auf den ursprünglichen Status zurücksetzen kann. Der Standardwert ist"false"
. Dieses Attribut ist nur für die Stammaktivität einer Aufgabe sinnvoll. Bei allen anderen Aktivitäten wird sie ignoriert.Normalerweise löscht das System eine Aufgabe und entfernt alle Aktivitäten aus dem Stapel über der Stammaktivität. In bestimmten Situationen, wenn der Nutzer diese Aufgabe jedoch noch einmal auf dem Startbildschirm auswählt, wird sie nicht gelöscht. Normalerweise geschieht dies, wenn der Nutzer die Aufgabe seit einer bestimmten Zeit, z. B. 30 Minuten, nicht aufgerufen hat.
Wenn dieses Attribut jedoch
"true"
ist, kehren Nutzer immer in den letzten Status der Aufgabe zurück, unabhängig davon, wie sie dorthin gelangen. Das ist in einer Anwendung wie einem Webbrowser nützlich, in der es viele Status gibt, z. B. mehrere geöffnete Tabs, die Nutzer nicht verlieren möchten. android:autoRemoveFromRecents
- Gibt an, ob Aufgaben, die durch die Aktivität mit diesem Attribut gestartet wurden, auf dem Bildschirm „Letzte Aktivitäten“ verbleiben, bis die letzte Aktivität in der Aufgabe abgeschlossen ist. Bei
true
wird die Aufgabe automatisch vom Bildschirm „Letzte“ entfernt. Dadurch wird die Verwendung vonFLAG_ACTIVITY_RETAIN_IN_RECENTS
durch den Anrufer überschrieben. Es muss ein boolescher Wert sein, entweder"true"
oder"false"
. android:banner
- Eine Drawable-Ressource, die ein erweitertes grafisches Banner für das zugehörige Element enthält. Verwenden Sie das Tag mit dem
<activity>
-Tag, um ein Standardbanner für eine bestimmte Aktivität bereitzustellen, oder mit dem<application>
-Tag, um ein Banner für alle Anwendungsaktivitäten bereitzustellen.Das System verwendet das Banner, um eine App auf dem Android TV-Startbildschirm darzustellen. Da das Banner nur auf dem Startbildschirm angezeigt wird, wird es nur von Apps mit einer Aktivität angegeben, die die
CATEGORY_LEANBACK_LAUNCHER
-Intent verarbeitet.Dieses Attribut wird als Referenz auf eine Zeichnen-Ressource festgelegt, die das Bild enthält, z. B.
"@drawable/banner"
. Es gibt kein Standardbanner.Weitere Informationen finden Sie unter Erste Schritte mit TV-Apps im Abschnitt Startbildschirmbanner bereitstellen.
android:canDisplayOnRemoteDevices
-
Gibt an, ob die Aktivität auf einem Remotegerät angezeigt werden kann, auf dem möglicherweise Android ausgeführt wird. Es muss ein boolescher Wert sein, entweder
"true"
oder"false"
.Der Standardwert dieses Attributs ist
"true"
. android:clearTaskOnLaunch
- Ob alle Aktivitäten außer der Stammaktivität aus der Aufgabe entfernt werden, wenn sie über den Startbildschirm neu gestartet wird.
"true"
, wenn die Aufgabe immer auf die Stammaktivität reduziert wird, und"false"
, wenn nicht. Der Standardwert ist"false"
. Dieses Attribut ist nur für Aktivitäten relevant, die eine neue Aufgabe starten – die Stammaktivität. Bei allen anderen Aktivitäten in der Aufgabe wird sie ignoriert.Wenn der Wert
"true"
ist, werden Nutzer jedes Mal, wenn sie die Aufgabe starten, zur übergeordneten Aktivität weitergeleitet, unabhängig davon, was sie zuletzt in der Aufgabe getan haben und unabhängig davon, ob sie die Aufgabe über die Schaltfläche „Zurück“ oder „Startseite“ verlassen haben. Wenn der Wert"false"
ist, können in einigen Fällen, aber nicht immer, Aktivitäten aus der Aufgabe gelöscht werden. Weitere Informationen finden Sie im Hilfeartikel zum AttributalwaysRetainTaskState
.Angenommen, der Nutzer startet Aktivität P über den Startbildschirm und wechselt von dort zu Aktivität Q. Der Nutzer tippt als Nächstes auf „Startseite“ und kehrt dann zu Aktivität P zurück. Normalerweise sieht der Nutzer die Aktivität Q, da er dies zuletzt in der Aufgabe P getan hat. Wenn P dieses Flag jedoch auf
"true"
setzt, werden alle darüber liegenden Aktivitäten – in diesem Fall Q – entfernt, wenn der Nutzer Aktivität P über den Startbildschirm startet. Der Nutzer sieht also nur „P“, wenn er zur Aufgabe zurückkehrt.Wenn dieses Attribut und
allowTaskReparenting
beide"true"
sind, werden alle Aktivitäten, die neu zugeordnet werden können, in die Aufgabe verschoben, mit der sie eine Affinität haben. Die verbleibenden Aktivitäten werden dann gelöscht.Dieses Attribut wird ignoriert, wenn
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
nicht festgelegt ist. android:colorMode
Gibt den Farbmodus der Aktivität an. Kann entweder
hdr
oderwideColorGamut
sein.Wenn
hdr
, wird die Aktivität in einem hohen Dynamikbereich angezeigt, sofern das Gerät dies unterstützt.Wenn
wideColorGamut
, wird auf kompatiblen Geräten angefordert, die Aktivität im Modus „Breite Farbskala“ anzuzeigen. Im Modus mit erweitertem Farbraum kann ein Fenster außerhalb desSRGB
-Farbraums gerendert werden, um kräftigere Farben zu erzielen. Wenn das Gerät das Rendern mit erweitertem Farbraum nicht unterstützt, hat dieses Attribut keine Auswirkungen. Weitere Informationen zum Rendern im Wide-Color-Modus finden Sie unter Grafiken mit Wide-Color-Inhalt optimieren.android:configChanges
- Listet Konfigurationsänderungen auf, die von der Aktivität selbst verarbeitet werden. Wenn während der Laufzeit eine Konfigurationsänderung auftritt, wird die Aktivität standardmäßig heruntergefahren und neu gestartet. Wenn Sie jedoch eine Konfiguration mit diesem Attribut deklarieren, wird der Neustart der Aktivität verhindert. Stattdessen bleibt die Aktivität aktiv und die
onConfigurationChanged()
-Methode wird aufgerufen.Hinweis:Verwenden Sie dieses Attribut nur in besonderen Fällen, um die Anwendungsleistung und -reaktionsfähigkeit zu verbessern. Weitere Informationen finden Sie unter Konfigurationsänderungen verarbeiten.
Die folgenden Strings sind gültige Werte für dieses Attribut. Mehrere Werte werden durch
|
getrennt, z. B."locale|navigation|orientation"
.Wert Beschreibung "colorMode"
Die Farbmodusfunktionen des Bildschirms (Farbumfang oder Dynamikbereich) haben sich geändert.
Hinweis:Der Farbmodus, der von der Aktivität mit dem
colorMode
-Attribut oder zur Laufzeit angefordert wird, unterscheidet sich von der Funktion für verschiedene Farbmodi. Eine Aktivität, die den verwendeten Farbmodus ändert, führt nicht zu einer Konfigurationsänderung, da sich die Farbfunktionen des Displays nicht geändert haben."density"
Eine Änderung der Displaydichte, z. B. wenn der Nutzer eine andere Displayskala festlegt oder ein anderes Display aktiv ist.
In API-Ebene 24 hinzugefügt
"fontScale"
Eine Änderung des Schriftskalierungsfaktors, z. B. wenn der Nutzer eine neue globale Schriftgröße auswählt. "fontWeightAdjustment"
Die Schriftstärke wurde nicht mehr so stark erhöht. "grammaticalGender"
Das grammatische Geschlecht der Sprache hat sich geändert. Weitere Informationen finden Sie unter GrammaticalInflectionManager
.In API-Level 34 hinzugefügt
"keyboard"
Eine Änderung des Tastaturtyps, z. B. wenn der Nutzer eine externe Tastatur anschließt. "keyboardHidden"
Eine Änderung an der Bedienungshilfe für die Tastatur, z. B. wenn der Nutzer die Hardwaretastatur einblendet. "layoutDirection"
Eine Änderung der Layoutrichtung, z. B. von links nach rechts (LTR) zu rechts nach links (RTL).
In API-Level 17 hinzugefügt
"locale"
Eine Änderung des Gebietsschemas, z. B. wenn der Nutzer eine neue Sprache auswählt, in der Text angezeigt werden soll. "mcc"
Eine Änderung des IMSI-Mobilfunklandescodes (Mobile Country Code, MCC), wenn eine SIM erkannt wird, die den MCC aktualisiert. "mnc"
Eine Änderung des IMSI-Mobilfunknetzwerkcodes (MNC), wenn eine SIM erkannt wird, die den MNC aktualisiert. "navigation"
TA zum Navigationstyp wechseln (Trackball oder Steuerkreuz). Normalerweise passiert das nicht. "orientation"
Eine Änderung der Bildschirmausrichtung, z. B. wenn der Nutzer das Gerät dreht.
Hinweis:Wenn Ihre Anwendung auf Android 3.2 (API-Level 13) oder höher ausgerichtet ist, müssen Sie auch die Konfigurationen
"screenLayout"
und"screenSize"
deklarieren, da sich das Bildschirmlayout und die Bildschirmgröße ändern können, wenn ein Gerät zwischen Hoch- und Querformat wechselt."screenLayout"
Eine Änderung des Bildschirmlayouts, z. B. wenn ein anderes Display aktiv wird. "screenSize"
Eine Änderung an der aktuell verfügbaren Bildschirmgröße.
Dies entspricht einer Änderung der aktuell verfügbaren Größe im Verhältnis zum aktuellen Seitenverhältnis. Sie ändert sich also, wenn der Nutzer zwischen Quer- und Hochformat wechselt.
In API-Level 13 hinzugefügt
"smallestScreenSize"
Eine Änderung der physischen Bildschirmgröße.
Dies entspricht einer Größenänderung unabhängig von der Ausrichtung. Sie ändert sich also nur, wenn sich die tatsächliche physische Bildschirmgröße ändert, z. B. beim Wechsel zu einem externen Display. Eine Änderung an dieser Konfiguration entspricht einer Änderung an der
smallestWidth
-Konfiguration.In API-Level 13 hinzugefügt
"touchscreen"
Eine Änderung am Touchscreen. Normalerweise passiert das nicht. "uiMode"
Eine Änderung des Modus der Benutzeroberfläche, z. B. wenn der Nutzer das Gerät in ein Tisch- oder Autodock setzt oder der Nachtmodus geändert wird. Weitere Informationen zu den verschiedenen UI-Modi finden Sie unter UiModeManager
.In API-Level 8 hinzugefügt
Alle diese Konfigurationsänderungen können sich auf die Ressourcenwerte auswirken, die von der Anwendung gesehen werden. Wenn
onConfigurationChanged()
aufgerufen wird, müssen daher in der Regel alle Ressourcen, einschließlich Ansichtslayouts und Drawables, noch einmal abgerufen werden, damit die Änderung korrekt verarbeitet werden kann.Hinweis:Verwenden Sie sowohl
"screenLayout"
als auch"smallestScreenSize"
, um Konfigurationsänderungen im Zusammenhang mit Multifenstern zu verarbeiten. Der Mehrfenstermodus wird ab Android 7.0 (API-Level 24) unterstützt. android:directBootAware
Gibt an, ob die Aktivität Direct-Boot-fähig ist, d. h., ob sie ausgeführt werden kann, bevor der Nutzer das Gerät entsperrt.
Hinweis : Während des Direktstarts kann eine Aktivität in Ihrer Anwendung nur auf die Daten zugreifen, die im gerätegeschützten Speicher gespeichert sind.
Der Standardwert ist
"false"
.android:documentLaunchMode
- Gibt an, wie einer Aufgabe jedes Mal, wenn sie gestartet wird, eine neue Instanz einer Aktivität hinzugefügt wird.
Mit diesem Attribut kann der Nutzer festlegen, dass mehrere Dokumente aus derselben Anwendung auf dem Bildschirm „Letzte“ angezeigt werden.
Dieses Attribut hat vier Werte, die folgende Auswirkungen haben, wenn der Nutzer ein Dokument mit der Anwendung öffnet:
Wert Beschreibung "intoExisting"
Das System sucht nach einer Aufgabe, deren ComponentName
und Daten-URI der Basisabsicht entsprechen. Wenn das System eine solche Aufgabe findet, löscht es sie und startet neu. Die Stammaktivität erhält einen Aufruf anonNewIntent(android.content.Intent)
. Wenn das System keine solche Aufgabe findet, wird eine neue Aufgabe erstellt."always"
Durch die Aktivität wird eine neue Aufgabe für das Dokument erstellt, auch wenn das Dokument bereits geöffnet ist. Dies entspricht dem Festlegen der Flags FLAG_ACTIVITY_NEW_DOCUMENT
undFLAG_ACTIVITY_MULTIPLE_TASK
."none"
Für die Aktivität wird keine neue Aufgabe erstellt. Dies ist der Standardwert. Dabei wird nur dann eine neue Aufgabe erstellt, wenn FLAG_ACTIVITY_NEW_TASK
festgelegt ist. Auf dem Bildschirm „Letzte Aktivitäten“ wird die Aktivität wie standardmäßig behandelt: Es wird eine einzelne Aufgabe für die App angezeigt, die mit der Aktivität fortgesetzt wird, die der Nutzer zuletzt ausgeführt hat."never"
Die Aktivität wird nicht in einem neuen Dokument gestartet, auch wenn der Intent FLAG_ACTIVITY_NEW_DOCUMENT
enthält. Wenn Sie diese Einstellung festlegen, wird das Verhalten der FlagsFLAG_ACTIVITY_NEW_DOCUMENT
undFLAG_ACTIVITY_MULTIPLE_TASK
überschrieben, falls eine dieser Flags in der Aktivität festgelegt ist. Auf dem Bildschirm „Letzte Aktivitäten“ wird dann eine einzelne Aufgabe für die App angezeigt, die mit der Aktivität fortgesetzt wird, die der Nutzer zuletzt aufgerufen hat.Hinweis:Bei anderen Werten als
"none"
und"never"
wird die Aktivität mitlaunchMode="standard"
definiert. Wenn dieses Attribut nicht angegeben ist, wirddocumentLaunchMode="none"
verwendet. android:enabled
- Ob die Aktivität vom System instanziiert werden kann. Geben Sie
"true"
ein, wenn das möglich ist, und"false"
, wenn nicht. Der Standardwert ist"true"
.Das
<application>
-Element hat ein eigenesenabled
-Attribut, das für alle Anwendungskomponenten gilt, einschließlich Aktivitäten. Die Attribute<application>
und<activity>
müssen beide"true"
sein, da sie standardmäßig so festgelegt sind, damit das System die Aktivität instanziieren kann. Wenn einer davon"false"
ist, kann die Instanziierung nicht erfolgen. android:enableOnBackInvokedCallback
- Mit diesem Flag können Sie vorausschauende Systemanimationen auf Aktivitätsebene deaktivieren.
Wenn Sie
android:enableOnBackInvokedCallback=false
festlegen, werden vorausschauende Rückwärtsanimationen entweder auf Aktivitäts- oder auf App-Ebene deaktiviert (je nachdem, wo Sie das Tag einfügen). Außerdem wird das System angewiesen, Aufrufe derOnBackInvokedCallback
-Plattform-API zu ignorieren. android:excludeFromRecents
Gibt an, ob die durch diese Aktivität initiierte Aufgabe vom Bildschirm „Letzte Aktivitäten“ ausgeschlossen wird. Wenn diese Aktivität die Stammaktivität einer neuen Aufgabe ist, bestimmt dieses Attribut, ob die Aufgabe in der Liste der letzten Apps angezeigt wird. Es wird
"true"
angezeigt, wenn die Aufgabe aus der Liste ausgeschlossen ist, und"false"
, wenn sie eingeschlossen ist. Der Standardwert ist"false"
.android:exported
Ob die Aktivität von Komponenten anderer Anwendungen gestartet werden kann:
- Wenn
"true"
, ist die Aktivität für jede App zugänglich und kann über den genauen Klassennamen gestartet werden. - Bei
"false"
kann die Aktivität nur von Komponenten derselben Anwendung, Anwendungen mit derselben Nutzer-ID oder privilegierten Systemkomponenten gestartet werden. Dies ist der Standardwert, wenn keine Intent-Filter vorhanden sind.
Wenn eine Aktivität in Ihrer App Intent-Filter enthält, legen Sie dieses Element auf
"true"
fest, damit andere Apps sie starten können. Beispiel: Die Aktivität ist die Hauptaktivität der App und enthält diecategory
android.intent.category.LAUNCHER
.Wenn dieses Element auf
"false"
gesetzt ist und eine App versucht, die Aktivität zu starten, löst das System eineActivityNotFoundException
aus.Dieses Attribut ist nicht die einzige Möglichkeit, die Sichtbarkeit einer Aktivität für andere Apps einzuschränken. Mit Berechtigungen können Sie auch die externen Entitäten einschränken, die die Aktivität aufrufen können. Weitere Informationen finden Sie im Artikel zum
permission
-Attribut.- Wenn
android:finishOnTaskLaunch
- Gibt an, ob eine vorhandene Instanz der Aktivität, mit Ausnahme der Stammaktivität, beendet wird, wenn der Nutzer die Aufgabe noch einmal startet, indem er sie auf dem Startbildschirm auswählt. Wenn das Gerät ausgeschaltet ist, ist der Wert
"true"
. Ist es eingeschaltet, ist der Wert"false"
. Der Standardwert ist"false"
.Wenn dieses Attribut und
allowTaskReparenting
beide"true"
sind, hat dieses Attribut Vorrang. Die Affinität der Aktivität wird ignoriert. Die Aktivität wird nicht neu zugeordnet, sondern gelöscht.Dieses Attribut wird ignoriert, wenn
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
nicht festgelegt ist. android:hardwareAccelerated
- Ob das hardwarebeschleunigte Rendering für diese Aktivität aktiviert ist.
"true"
, wenn sie aktiviert ist, und"false"
, wenn nicht. Der Standardwert ist"false"
.Unter Android 3.0 und höher steht für Anwendungen ein hardwaregestützter OpenGL-Renderer zur Verfügung, um die Leistung bei vielen gängigen 2D-Grafikoperationen zu verbessern. Wenn der hardwaregestützte Renderer aktiviert ist, werden die meisten Vorgänge in Canvas, Paint, Xfermode, ColorFilter, Shader und Camera beschleunigt.
Dies führt zu flüssigeren Animationen, flüssigerem Scrollen und einer verbesserten Reaktionsfähigkeit insgesamt, auch bei Anwendungen, die die OpenGL-Bibliotheken des Frameworks nicht explizit nutzen. Da für die Hardwarebeschleunigung mehr Ressourcen erforderlich sind, benötigt Ihre App mehr RAM.
Nicht alle OpenGL 2D-Vorgänge werden beschleunigt. Wenn Sie den hardwarebeschleunigten Renderer aktivieren, testen Sie, ob Ihre Anwendung den Renderer fehlerfrei verwenden kann.
android:icon
Ein Symbol für die Aktivität. Das Symbol wird Nutzern angezeigt, wenn eine Darstellung der Aktivität auf dem Bildschirm erforderlich ist. Im Launcher-Fenster werden beispielsweise Symbole für Aktivitäten angezeigt, die Aufgaben initiieren. Das Symbol wird oft von einem Label begleitet. Informationen zum Label finden Sie im Attribut
android:label
.Dieses Attribut wird als Referenz auf eine Zeichnen-Ressource mit der Bilddefinition festgelegt. Wenn es nicht festgelegt ist, wird stattdessen das Symbol verwendet, das für die Anwendung insgesamt angegeben ist. Weitere Informationen finden Sie im Attribut
icon
des Elements<application>
.Das Symbol der Aktivität, das hier oder über das Element
<application>
festgelegt wird, ist auch das Standardsymbol für alle Intent-Filter der Aktivität. Weitere Informationen finden Sie im Attributicon
des Elements<intent-filter>
.android:immersive
- Legt die Einstellung für den immersiven Modus für die aktuelle Aktivität fest. Wenn es
"true"
ist, ist dasFLAG_IMMERSIVE
-Bit desActivityInfo.flags
-Elements immer gesetzt, auch wenn sich der immersive Modus während der Laufzeit mithilfe dersetImmersive()
-Methode ändert. android:label
Ein für Nutzer lesbares Label für die Aktivität. Das Label wird auf dem Bildschirm angezeigt, wenn die Aktivität dem Nutzer angezeigt wird. Es wird oft zusammen mit dem Aktivitätssymbol angezeigt. Wenn dieses Attribut nicht festgelegt ist, wird stattdessen das Label verwendet, das für die Anwendung insgesamt festgelegt wurde. Weitere Informationen finden Sie im Attribut
label
des Elements<application>
.Das Label der Aktivität, das hier oder über das Element
<application>
festgelegt wird, ist auch das Standardlabel für alle Intent-Filter der Aktivität. Weitere Informationen finden Sie im Attributlabel
des Elements<intent-filter>
.Das Label wird als Referenz auf eine Stringressource festgelegt, damit es wie andere Strings in der Benutzeroberfläche lokalisiert werden kann. Zur Vereinfachung während der Entwicklung der Anwendung kann er jedoch auch als Rohstring festgelegt werden.
android:launchMode
Eine Anleitung zum Starten der Aktivität. Es gibt fünf Modi, die in Verbindung mit Aktivitätsflags (
FLAG_ACTIVITY_*
-Konstanten) inIntent
-Objekten verwendet werden, um zu bestimmen, was passiert, wenn die Aktivität zum Bearbeiten einer Intent aufgerufen wird:"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"
Der Standardmodus ist
"standard"
.Wie in der folgenden Tabelle dargestellt, lassen sich die Modi in zwei Hauptgruppen unterteilen:
"standard"
- und"singleTop"
-Aktivitäten auf der einen Seite und"singleTask"
-,"singleInstance"
- und"singleInstancePerTask"
-Aktivitäten auf der anderen. Eine Aktivität mit dem Startmodus"standard"
oder"singleTop"
kann mehrmals instanziiert werden.Die Instanzen können zu jeder Aufgabe gehören und sich überall in der Aktivitätsaufgabe befinden. Normalerweise werden sie in der Aufgabe gestartet, die
startActivity()
aufgerufen hat, es sei denn, dasIntent
-Objekt enthält eineFLAG_ACTIVITY_NEW_TASK
-Anweisung. In diesem Fall wird eine andere Aufgabe ausgewählt. Weitere Informationen finden Sie im Hilfeartikel zum AttributtaskAffinity
."singleTask"
-,"singleInstance"
- und"singleInstancePerTask"
-Aktivitäten verhalten sich dagegen anders."singleInstancePerTask"
befindet sich immer am Stamm der Aktivitätsaufgabe. Außerdem kann auf dem Gerät jeweils nur eine Instanz der Aktivität"singleInstance"
gespeichert werden, während die Aktivität"singleInstancePerTask
bei festgelegterFLAG_ACTIVITY_MULTIPLE_TASK
oderFLAG_ACTIVITY_NEW_DOCUMENT
mehrmals in verschiedenen Aufgaben instanziiert werden kann.Eine Aktivität mit dem Startmodus
"singleTask"
kombiniert das Verhalten von"singleInstance"
und"singleInstancePerTask"
: Die Aktivität kann mehrmals instanziiert werden und sich an einer beliebigen Stelle in einer Aufgabe derselbentaskAffinity
befinden. Das Gerät kann jedoch nur eine Aufgabe zum Auffinden der"singleTask"
-Aktivität im Stammverzeichnis der Aktivitätsaufgabe enthalten.Die Modi
"standard"
und"singleTop"
unterscheiden sich in einem Punkt: Jedes Mal, wenn es eine neue Absicht für eine"standard"
-Aktivität gibt, wird eine neue Instanz der Klasse erstellt, um auf diese Absicht zu reagieren. Jede Instanz verarbeitet eine einzelne Absicht. Ebenso kann eine neue Instanz einer"singleTop"
-Aktivität erstellt werden, um einen neuen Intent zu verarbeiten.Wenn die Zielaufgabe jedoch bereits eine Instanz der Aktivität oben im Stapel hat, erhält diese Instanz die neue Absicht in einem
onNewIntent()
-Aufruf. Es wird keine neue Instanz erstellt. Andernfalls (wenn sich eine vorhandene Instanz der"singleTop"
-Aktivität in der Zielaufgabe befindet, aber nicht ganz oben im Stapel, oder wenn sie ganz oben im Stapel, aber nicht in der Zielaufgabe ist) wird eine neue Instanz erstellt und auf den Stapel geschoben.Wenn der Nutzer auf eine Aktivität im aktuellen Stack nach oben wechselt, wird das Verhalten ebenfalls vom Startmodus der übergeordneten Aktivität bestimmt. Wenn die übergeordnete Aktivität den Startmodus
singleTop
hat (oder dieup
-Intent-AnfrageFLAG_ACTIVITY_CLEAR_TOP
enthält), wird die übergeordnete Aktivität an den Anfang des Stapels gestellt und ihr Status bleibt erhalten.Die Navigationsabsicht wird von der
onNewIntent()
-Methode der übergeordneten Aktivität empfangen. Wenn die übergeordnete Aktivität den Startmodusstandard
hat und derup
-Intent nichtFLAG_ACTIVITY_CLEAR_TOP
enthält, werden die aktuelle Aktivität und ihr übergeordnetes Element aus dem Stack entfernt und eine neue Instanz der übergeordneten Aktivität wird erstellt, um den Navigationsintent zu empfangen.Der
"singleInstance"
-Modus unterscheidet sich auch nur in einer Hinsicht von"singleTask"
und"singleInstancePerTask"
: Bei einer Aktivität mit dem Startmodus"singleTask"
oder"singleInstancePerTask"
können andere Aktivitäten, also unbedingt"standard"
- und"singleTop"
-Aktivitäten, Teil der Aufgabe sein.Bei einer
"singleInstance"
-Aktivität sind dagegen keine anderen Aktivitäten Teil der Aufgabe. Sie muss die einzige Aktivität in der Aufgabe sein. Wenn eine andere Aktivität gestartet wird, wird diese Aktivität einer anderen Aufgabe zugewiesen, als wäreFLAG_ACTIVITY_NEW_TASK
im Intent enthalten.Anwendungsfälle Startmodus Mehrere Instanzen? Kommentare Normale Einführungen für die meisten Aktivitäten "standard"
Ja Standard: Das System erstellt immer eine neue Instanz der Aktivität in der Zielaufgabe und leitet die Absicht an diese weiter. "singleTop"
Bedingt Wenn oben in der Zielaufgabe bereits eine Instanz der Aktivität vorhanden ist, leitet das System die Absicht über einen Aufruf der onNewIntent()
-Methode an diese Instanz weiter, anstatt eine neue Instanz der Aktivität zu erstellen.Spezielle Einführungen
(nicht für die allgemeine Nutzung empfohlen)"singleTask"
Bedingt Das System erstellt die Aktivität im Stamm einer neuen Aufgabe oder sucht sie in einer vorhandenen Aufgabe mit derselben Affinität. Wenn eine Instanz der Aktivität bereits vorhanden ist und sich am Stamm der Aufgabe befindet, leitet das System die Absicht über einen Aufruf der onNewIntent()
-Methode an die vorhandene Instanz weiter, anstatt eine neue zu erstellen."singleInstance"
Nein Wie bei "singleTask"
, mit der Ausnahme, dass das System keine weiteren Aktivitäten in der Aufgabe startet, die die Instanz enthält. Die Aktivität ist immer das einzige Mitglied ihrer Aufgabe."singleInstancePerTask"
Bedingt Die Aktivität kann nur als Stammaktivität der Aufgabe ausgeführt werden, also als erste Aktivität, durch die die Aufgabe erstellt wurde. Daher gibt es in einer Aufgabe nur eine Instanz dieser Aktivität. Die Aktivität kann jedoch in verschiedenen Aufgaben mehrmals instanziiert werden. Wie in der Tabelle oben zu sehen, ist
"standard"
der Standardmodus und für die meisten Arten von Aktivitäten geeignet."singleTop"
ist auch ein gängiger und nützlicher Startmodus für viele Arten von Aktivitäten. Die anderen Modi"singleTask"
,"singleInstance"
und"singleInstancePerTask"
sind für die meisten Anwendungen nicht geeignet. Sie führen zu einem Interaktionsmodell, das Nutzern wahrscheinlich nicht vertraut ist und sich stark von den meisten anderen Anwendungen unterscheidet.Unabhängig vom ausgewählten Startmodus sollten Sie die Nutzerfreundlichkeit der Aktivität beim Starten und beim Zurückkehren über die Schaltfläche „Zurück“ von anderen Aktivitäten und Aufgaben testen.
Weitere Informationen zu Startmodi und ihrer Interaktion mit
Intent
-Flags finden Sie unter Aufgaben und der Backstack.android:lockTaskMode
- Bestimmt, wie das System diese Aktivität darstellt, wenn das Gerät im Modus für gesperrte Aufgaben ausgeführt wird.
Android kann Aufgaben im immersiven, kioskähnlichen Modus ausführen, der als Modus „Gesperrte Aufgabe“ bezeichnet wird. Wenn das System im Sperrmodus ausgeführt wird, können Nutzer des Geräts in der Regel keine Benachrichtigungen sehen, nicht auf nicht auf der Zulassungsliste stehende Apps zugreifen oder zum Startbildschirm zurückkehren, es sei denn, die Home App steht auf der Zulassungsliste.
Nur Apps, die von einem Device Policy Controller (DPC) auf die Zulassungsliste gesetzt wurden, können ausgeführt werden, wenn sich das System im Sperrmodus befindet. System- und privilegierte Apps können jedoch im Modus für gesperrte Aufgaben ausgeführt werden, ohne auf der Zulassungsliste zu stehen.
Der Wert kann einer der folgenden
R.attr.lockTaskMode
-Stringwerte sein:Wert Beschreibung "normal"
Standardwert. Das ist der Standardwert. Aufgaben werden nicht im Modus „gesperrte Aufgabe“ gestartet, können aber dorthin verschoben werden, indem startLockTask()
aufgerufen wird."never"
Aufgaben werden nicht im Modus
lockTask
gestartet und der Gerätenutzer kann diese Aufgaben nicht über den Bildschirm „Letzte“ anpinnen.Hinweis:Dieser Modus ist nur für System- und privilegierte Anwendungen verfügbar. Nicht privilegierte Apps mit diesem Wert werden als
normal
behandelt."if_whitelisted"
Wenn der DPC dieses Paket mit DevicePolicyManager.setLockTaskPackages()
autorisiert, ist dieser Modus mitalways
identisch, mit der Ausnahme, dass die AktivitätstopLockTask()
aufrufen muss, bevor sie abgeschlossen werden kann, wenn es sich um die letzte gesperrte Aufgabe handelt. Wenn der DPC dieses Paket nicht autorisiert, ist dieser Modus mitnormal
identisch."always"
Aufgaben, die auf dieser Aktivität basieren, werden immer im Modus für gesperrte Aufgaben gestartet. Wenn das System bereits im Modus „Aufgabe sperren“ ist, wenn diese Aufgabe gestartet wird, wird die neue Aufgabe über der aktuellen Aufgabe gestartet. Aufgaben, die in diesem Modus gestartet werden, können den Sperrmodus für Aufgaben beenden, indem
finish()
aufgerufen wird.Hinweis:Dieser Modus ist nur für System- und privilegierte Anwendungen verfügbar. Nicht privilegierte Apps mit diesem Wert werden als
normal
behandelt.Dieses Attribut wurde mit API-Level 23 eingeführt.
android:maxRecents
- Die maximale Anzahl der Aufgaben, die auf dieser Aktivität auf dem Bildschirm „Letzte Aktivitäten“ basieren. Wenn diese Anzahl erreicht ist, entfernt das System die Instanz, die am längsten nicht verwendet wurde, vom Bildschirm „Letzte“. Gültige Werte sind Ganzzahlen von 1 bis 50 oder 1 bis 25 auf Geräten mit wenig Arbeitsspeicher. Null ist ungültig. Der Standardwert ist 16.
android:maxAspectRatio
Das maximale Seitenverhältnis, das von der Aktivität unterstützt wird. Wenn die App auf einem Gerät mit einem breiteren Seitenverhältnis ausgeführt wird, wird sie automatisch in einem Letterbox-Format dargestellt. Dabei bleiben Teile des Displays unbelegt, damit die App im angegebenen maximalen Seitenverhältnis ausgeführt werden kann.
Das maximale Seitenverhältnis wird als Dezimalform des Quotienten der längeren Dimension des Geräts geteilt durch die kürzere Dimension angegeben. Wenn das maximale Seitenverhältnis beispielsweise 7:3 ist, legen Sie den Wert dieses Attributs auf 2,33 fest.
Bei anderen Geräten muss der Wert dieses Attributs mindestens 1, 33 betragen. Auf Wearables muss die Version mindestens 1.0 sein. Andernfalls wird der festgelegte Wert vom System ignoriert.
Hinweis : Dieses Attribut wird ignoriert, wenn für die Aktivität
resizeableActivity
auf „wahr“ gesetzt ist, da dies bedeutet, dass die Aktivität jede Größe unterstützt.Weitere Informationen zu diesem Attribut finden Sie unter Maximales Seitenverhältnis angeben.
android:multiprocess
- Gibt an, ob eine Instanz der Aktivität im Prozess der Komponente gestartet werden kann, die sie gestartet hat. Geben Sie
"true"
ein, wenn das möglich ist, und"false"
, wenn nicht. Der Standardwert ist"false"
.Normalerweise wird eine neue Instanz einer Aktivität im Prozess der Anwendung gestartet, die sie definiert hat. Alle Instanzen der Aktivität werden also im selben Prozess ausgeführt. Wenn dieses Flag jedoch auf
"true"
gesetzt ist, können Instanzen der Aktivität in mehreren Prozessen ausgeführt werden. Das System kann dann Instanzen erstellen, wo immer sie verwendet werden, sofern die Berechtigungen dies zulassen. Das ist fast nie notwendig oder wünschenswert. android:name
- Der Name der Klasse, die die Aktivität implementiert, eine Unterklasse von
Activity
. Der Attributwert ist normalerweise ein vollständig qualifizierter Klassenname, z. B."com.example.project.ExtracurricularActivity"
. Wenn das erste Zeichen des Namens jedoch ein Punkt ist, z. B.".ExtracurricularActivity"
, wird er als Kurzform an den in derbuild.gradle
-Datei angegebenen Namespace angehängt.Ändern Sie diesen Namen nach der Veröffentlichung Ihrer App nicht, es sei denn, Sie haben
android:exported="false"
festgelegt. Es gibt keinen Standardwert. Der Name muss angegeben werden. android:noHistory
- Gibt an, ob die Aktivität durch Aufrufen der
finish()
-Methode aus dem Aktivitätsstapel entfernt und beendet wird, wenn der Nutzer sie verlässt und sie nicht mehr auf dem Bildschirm sichtbar ist. Wenn der Vorgang abgeschlossen ist, wird"true"
angezeigt. Andernfalls"false"
. Der Standardwert ist"false"
.Der Wert
"true"
bedeutet, dass die Aktivität keine Verlaufsspur hinterlässt. Sie bleibt nicht im Aktivitätsstapel für die Aufgabe, sodass der Nutzer nicht mehr zu ihr zurückkehren kann. In diesem Fall 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
android:name
-Attribut des entsprechenden<activity>
-Elements zugewiesen ist.Anhand dieses Attributs ermittelt das System, welche Aktivität gestartet werden soll, wenn der Nutzer in der Aktionsleiste auf die Schaltfläche „Zurück“ tippt. Das System kann diese Informationen auch verwenden, um einen Backstack von Aktivitäten mit
TaskStackBuilder
zu erstellen.Zur Unterstützung der API-Ebenen 4–16 können Sie die übergeordnete Aktivität auch mit einem
<meta-data>
-Element deklarieren, das einen Wert für"android.support.PARENT_ACTIVITY"
angibt:<activity android:name="com.example.app.ChildActivity" android:label="@string/title_child_activity" android:parentActivityName="com.example.app.MainActivity" > <!-- Parent activity meta-data to support API level 4+ --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.app.MainActivity" /> </activity>
Weitere Informationen zum Deklarieren der übergeordneten Aktivität für die Navigation nach oben finden Sie unter Navigation nach oben bereitstellen.
Dieses Attribut wurde mit API-Level 16 eingeführt.
android:persistableMode
Hiermit wird definiert, wie eine Instanz einer Aktivität in einer übergeordneten Aufgabe bei Geräteneustarts beibehalten wird.
Wenn der Wert dieses Attributs für die Stammaktivität einer Aufgabe auf
persistRootOnly
festgelegt ist, wird nur die Stammaktivität beibehalten. Andernfalls werden die Aktivitäten geprüft, die im Backstack der Aufgabe weiter oben liegen. Alle Aktivitäten, bei denen der Wert dieses Attributs aufpersistAcrossReboots
festgelegt ist, bleiben erhalten.Wenn Sie dieses Attribut verwenden, müssen Sie einen der folgenden Werte festlegen:
Wert Beschreibung persistRootOnly
Standardwert. Wenn das System neu gestartet wird, bleibt die Aktivitätsaufgabe erhalten, aber es wird nur die Startabsicht der Stammaktivität verwendet.
Wenn die Startabsicht Ihrer App die Stammaktivität Ihrer App lädt, erhält die Aktivität kein
PersistableBundle
-Objekt. Verwenden Sie daheronSaveInstanceState()
nicht, um den Status der Root-Aktivität Ihrer App nach einem Geräteneustart beizubehalten.Hinweis : Dieser Attributwert wirkt sich nur auf das Verhalten Ihrer App aus, wenn er für die Hauptaktivität Ihrer App festgelegt ist.
persistAcrossReboots
Der Status dieser Aktivität wird zusammen mit dem Status aller Aktivitäten im Backstack beibehalten, deren eigenes
persistableMode
-Attribut aufpersistAcrossReboots
festgelegt ist. Wenn eine Aktivität keinpersistableMode
-Attribut hat, das aufpersistAcrossReboots
festgelegt ist, oder wenn sie mit dem FlagIntent.FLAG_ACTIVITY_NEW_DOCUMENT
gestartet wird, wird diese Aktivität zusammen mit allen Aktivitäten im Backstack nicht beibehalten.Wenn ein Intent eine Aktivität lädt, deren
persistableMode
-Attribut in Ihrer App aufpersistAcrossReboots
festgelegt ist, erhält die Aktivität in der MethodeonCreate()
einPersistableBundle
-Objekt. Daher können Sie mitonSaveInstanceState()
den Status einer Aktivität nach einem Neustart des Geräts beibehalten, solange das AttributpersistableMode
aufpersistAcrossReboots
festgelegt ist.Hinweis : Dieser Attributwert wirkt sich auf das Verhalten Ihrer App aus, auch wenn er für eine andere Aktivität als die Stammaktivität Ihrer App festgelegt ist.
persistNever
Der Status der Aktivität wird nicht beibehalten.
Hinweis : Dieser Attributwert wirkt sich nur auf das Verhalten Ihrer App aus, wenn er für die Hauptaktivität Ihrer App festgelegt ist.
Dieses Attribut wurde mit API-Level 21 eingeführt.
android:permission
- Der Name einer Berechtigung, die Clients benötigen, um die Aktivität zu starten oder sie anderweitig auf einen Intent reagieren zu lassen. Wenn einem Aufrufer von
startActivity()
oderstartActivityForResult()
die angegebene Berechtigung nicht gewährt wurde, wird die Absicht nicht an die Aktivität gesendet.Wenn dieses Attribut nicht festgelegt ist, wird die Berechtigung angewendet, die über das Attribut
permission
des Elements<application>
festgelegt wurde. Wenn keines der Attribute festgelegt ist, ist die Aktivität nicht durch eine Berechtigung geschützt.Weitere Informationen zu Berechtigungen finden Sie im Abschnitt Berechtigungen der Übersicht zum App-Manifest und in den Sicherheitstipps.
android:process
Der Name des Prozesses, in dem die Aktivität ausgeführt wird. Normalerweise werden alle Komponenten einer Anwendung unter einem Standardprozessnamen ausgeführt, der für die Anwendung erstellt wurde. Sie müssen dieses Attribut also nicht verwenden. Bei Bedarf können Sie den Standardprozessnamen jedoch mit diesem Attribut überschreiben, um Ihre App-Komponenten auf mehrere Prozesse zu verteilen.
Wenn der diesem Attribut zugewiesene Name mit einem Doppelpunkt (
:
) beginnt, wird bei Bedarf ein neuer Prozess erstellt, der nur für die Anwendung gilt. Die Aktivität wird dann in diesem Prozess ausgeführt.Wenn der Prozessname mit einem Kleinbuchstaben beginnt, wird die Aktivität in einem globalen Prozess dieses Namens ausgeführt, sofern sie dazu berechtigt ist. So können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, was die Ressourcennutzung reduziert.
Mit dem Attribut
process
des Elements<application>
kann ein anderer Standardprozessname für alle Komponenten festgelegt werden.android:relinquishTaskIdentity
Gibt an, ob die Aktivität ihre Aufgaben-IDs an eine Aktivität über ihr im Aufgabenstapel abgibt. Bei einer Aufgabe, bei der dieses Attribut für die Stammaktivität auf
"true"
festgelegt ist, wird die BasisIntent
durch die der nächsten Aktivität in der Aufgabe ersetzt.Wenn für die nächste Aktivität dieses Attribut ebenfalls auf
"true"
festgelegt ist, wird für alle Aktivitäten, die in derselben Aufgabe gestartet werden, die BasisIntent
zurückgegeben. Dies wird für jede Aktivität wiederholt, bis eine Aktivität gefunden wird, für die dieses Attribut auf"false"
festgelegt ist. Der Standardwert ist"false"
.Wenn dieses Attribut auf
"true"
festgelegt ist, kann die Aktivität auch dieActivityManager.TaskDescription
verwenden, um Labels, Farben und Symbole auf dem Bildschirm „Letzte“ zu ändern.android:requireContentUriPermissionFromCaller
-
Gibt die Berechtigungen an, die zum Starten dieser Aktivität beim Übergeben von Inhalts-URIs erforderlich sind. Der Standardwert ist
none
. Das bedeutet, dass keine speziellen Berechtigungen erforderlich sind. Wenn Sie dieses Attribut festlegen, wird der Aufruf von Aktivitäten basierend auf den Berechtigungen des Aufrufers eingeschränkt. Wenn der Aufrufer nicht die erforderlichen Berechtigungen hat, wird der Start der Aktivität über eineSecurityException
abgelehnt.Die Erzwingung funktioniert für Inhalts-URIs in
Intent.getData()
,Intent.EXTRA_STREAM
undIntent.getClipData()
.Kann ein Stringwert sein, bei dem Zeichen wie „\\n“ oder „\\uxxxx“ für ein Unicode-Zeichen mit „\\“ maskiert werden.
Muss einer der folgenden konstanten Werte sein.
Konstante Wert Beschreibung Keine 0 Standardmäßig sind keine speziellen Berechtigungen erforderlich. lesen 1 Erzwingt, dass der Aufrufer Lesezugriff auf die übergebenen Inhalts-URIs hat. readAndWrite 4 Erzwingt, dass der Aufrufer sowohl Lese- als auch Schreibzugriff auf die übergebenen Inhalts-URIs hat. readOrWrite 3 Erzwingt, dass der Aufrufer Lese- oder Schreibzugriff auf die übergebenen Inhalts-URIs hat. für mich 2 Erzwingt, dass der Aufrufer Schreibzugriff auf die übergebenen Inhalts-URIs hat. android:resizeableActivity
-
Gibt an, ob die App den Multifenstermodus unterstützt. Sie können dieses Attribut entweder im Element
<activity>
oder<application>
festlegen.Wenn Sie dieses Attribut auf
"true"
festlegen, kann der Nutzer die Aktivität im Splitscreen- und im Freiformmodus starten. Wenn Sie das Attribut auf"false"
festlegen, kann die App nicht für eine Umgebung mit mehreren Fenstern getestet oder optimiert werden. Das System kann die Aktivität weiterhin im Mehrfenstermodus mit angewendetem Kompatibilitätsmodus starten.Wenn Sie dieses Attribut auf
"false"
festlegen, ist nicht garantiert, dass auf dem Bildschirm keine anderen Apps im Multifenstermodus zu sehen sind, z. B. im Bild-im-Bild-Modus oder auf anderen Displays. Das Festlegen dieses Flags bedeutet also nicht, dass Ihre App exklusiven Ressourcenzugriff hat.Wenn Ihre App auf API-Level 24 oder höher ausgerichtet ist und Sie keinen Wert für dieses Attribut angeben, wird der Wert des Attributs standardmäßig auf
"true"
festgelegt.Wenn Ihre App auf API-Level 31 oder höher ausgerichtet ist, funktioniert dieses Attribut auf kleinen und großen Bildschirmen unterschiedlich:
- Große Bildschirme (sw >= 600 dp): Alle Apps unterstützen den Mehrfenstermodus. Das Attribut gibt an, ob die Größe einer App geändert werden kann, nicht ob die App den Modus mit mehreren Fenstern unterstützt. Bei
resizeableActivity="false"
wird die App bei Bedarf in den Kompatibilitätsmodus versetzt, um die Displayabmessungen einzuhalten. - Kleine Bildschirme (sw < 600 dp): Wenn
resizeableActivity="true"
und die Mindestbreite und Mindesthöhe der Aktivität die Anforderungen für den Multifenstermodus erfüllen, unterstützt die App den Multifenstermodus. WennresizeableActivity="false"
, unterstützt die App den Multifenstermodus unabhängig von der Mindestbreite und -höhe der Aktivität nicht.
Hinweis:Gerätehersteller können das Verhalten der API-Ebene 31 überschreiben.
Dieses Attribut wurde in API-Ebene 24 hinzugefügt.
Hinweis:Der Wert der Root-Aktivität einer Aufgabe wird auf alle zusätzlichen Aktivitäten angewendet, die in der Aufgabe gestartet werden. Wenn also die Root-Aktivität einer Aufgabe veränderbar ist, behandelt das System alle anderen Aktivitäten in der Aufgabe als veränderbar. Wenn die übergeordnete Aktivität nicht skalierbar ist, können auch die anderen Aktivitäten in der Aufgabe nicht skaliert werden.
- Große Bildschirme (sw >= 600 dp): Alle Apps unterstützen den Mehrfenstermodus. Das Attribut gibt an, ob die Größe einer App geändert werden kann, nicht ob die App den Modus mit mehreren Fenstern unterstützt. Bei
android:screenOrientation
Die angeforderte Ausrichtung der Aktivität.
Wenn eine Aktivität den gesamten Bildschirm ausfüllt, dient die angeforderte Ausrichtung als Vorschlag, die Ausrichtung auf diesem Bildschirm an den angeforderten Wert anzupassen. Das kann zu einer Ausrichtung führen, die von der physischen Ausrichtung des Bildschirms abweicht, sodass der Nutzer das Gerät drehen muss, um die App weiter verwenden zu können. Unter Android 12 (API-Level 31) und höher können Gerätehersteller einzelne Gerätebildschirme (z. B. den tabletgroßen Bildschirm eines faltbaren Geräts) so konfigurieren, dass dieser Vorschlag ignoriert wird und stattdessen eine Aktivität in der bevorzugten Ausrichtung des Geräts des Nutzers in Letterbox-Format dargestellt wird. Dadurch entspricht die Ausrichtung der Aktivität der angeforderten, ohne dass der Nutzer sein Gerät drehen muss.
Im Modus mit mehreren Fenstern dient die angeforderte Ausrichtung nicht als Vorschlag für die Gesamtausrichtung. Wenn die Aktivität letterboxed ist, wirkt sich die gewünschte Ausrichtung auf das Letterboxing aus, das auf die Aktivität angewendet wird.
Der Wert kann einer der folgenden Strings sein:
"unspecified"
Der Standardwert. Die Ausrichtung wird vom System ausgewählt. Die verwendete Richtlinie und die in bestimmten Kontexten getroffenen Auswahlentscheidungen können sich von Gerät zu Gerät unterscheiden. "behind"
Entspricht der Ausrichtung der Aktivität, die im Aktivitätsstapel direkt darunter liegt. "landscape"
Querformat (das Display ist breiter als hoch) "portrait"
Hochformat (das Display ist höher als breit) "reverseLandscape"
Querformat, das dem normalen Querformat entgegengesetzt ist. In API-Level 9 hinzugefügt. "reversePortrait"
Hochformat, das der Ausrichtung des normalen Hochformats entgegengesetzt ist. In API-Level 9 hinzugefügt. "sensorLandscape"
Querformat, kann aber je nach Gerätesensor entweder im normalen oder umgekehrten Querformat sein. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. In API-Level 9 hinzugefügt. "sensorPortrait"
Hochformat, kann aber je nach Gerätesensor entweder normal oder umgekehrt sein. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat. Je nach Gerätekonfiguration ist die Drehung nach unten jedoch möglicherweise nicht zulässig. In API-Level 9 hinzugefügt. "userLandscape"
Querformat, kann aber je nach Gerätesensor und Nutzereinstellung entweder normal oder umgekehrt sein. In API-Level 18 hinzugefügt. "userPortrait"
Hochformat, kann aber je nach Gerätesensor und Nutzereinstellung entweder normal oder umgekehrt sein. Je nach Gerätekonfiguration ist die Drehung nach unten jedoch möglicherweise nicht zulässig. In API-Level 18 hinzugefügt. "sensor"
Die Ausrichtung wird vom Sensor für die Geräteausrichtung bestimmt. Die Ausrichtung des Displays hängt davon ab, wie der Nutzer das Gerät hält. Sie ändert sich, wenn der Nutzer das Gerät dreht. Bei einigen Geräten ist die Standardeinstellung jedoch nicht so, dass sie sich in alle vier möglichen Ausrichtungen drehen. Wenn Sie alle vier Ausrichtungen verwenden möchten, verwenden Sie "fullSensor"
. Der Sensor wird auch dann verwendet, wenn der Nutzer die sensorbasierte Drehung gesperrt hat."fullSensor"
Der Sensor für die Geräteausrichtung bestimmt die Ausrichtung für eine der vier Ausrichtungen. Diese Option ähnelt "sensor"
, mit der Ausnahme, dass hier jede der vier möglichen Bildschirmausrichtungen zulässig ist, unabhängig davon, was das Gerät normalerweise unterstützt. Auf einigen Geräten werden beispielsweise normalerweise keine Porträt- oder Querformate verwendet, die Ausrichtungen werden aber durch diese Einstellung aktiviert. In API-Level 9 hinzugefügt."nosensor"
Die Ausrichtung wird ohne Bezug auf einen physischen Ausrichtungssensor bestimmt. Der Sensor wird ignoriert, sodass sich das Display nicht entsprechend der Bewegung des Nutzers dreht. "user"
Die aktuelle bevorzugte Ausrichtung des Nutzers. "fullUser"
Wenn der Nutzer die sensorbasierte Drehung gesperrt hat, verhält sich diese Einstellung wie user
. Andernfalls verhält sie sich wiefullSensor
und ermöglicht jede der vier möglichen Bildschirmausrichtungen. In API-Level 18 hinzugefügt."locked"
Die Ausrichtung wird auf die aktuelle Drehung festgelegt. In API-Ebene 18 hinzugefügt. Hinweis:Wenn Sie einen der Werte für „Querformat“ oder „Hochformat“ angeben, gilt dies als strenge Anforderung für die Ausrichtung, in der die Aktivität ausgeführt wird. Anhand des von Ihnen angegebenen Werts kann nach Diensten wie Google Play gefiltert werden, sodass Ihre App nur für Geräte verfügbar ist, die die für Ihre Aktivitäten erforderliche Ausrichtung unterstützen. Wenn Sie beispielsweise
"landscape"
,"reverseLandscape"
oder"sensorLandscape"
angeben, ist Ihre Anwendung nur auf Geräten verfügbar, die die Querformatausrichtung unterstützen.Deklarieren Sie außerdem explizit, dass Ihre Anwendung entweder im Hoch- oder Querformat angezeigt werden muss, indem Sie das Element
<uses-feature>
verwenden, z. B.<uses-feature android:name="android.hardware.screen.portrait"/>
. Dieses Filterverhalten wird von Google Play und anderen Diensten bereitgestellt, die es unterstützen. Die Plattform selbst steuert nicht, ob Ihre App installiert werden kann, wenn ein Gerät nur bestimmte Ausrichtungen unterstützt.android:showForAllUsers
-
Gibt an, ob die Aktivität angezeigt wird, wenn der aktuelle Nutzer des Geräts nicht der Nutzer ist, der die Aktivität gestartet hat. Sie können für dieses Attribut einen Literalwert wie
"true"
oder"false"
festlegen oder ein Ressourcen- oder Themenattribut mit einem booleschen Wert.Dieses Attribut wurde in API-Ebene 23 hinzugefügt.
android:stateNotNeeded
- Ob die Aktivität beendet und erfolgreich neu gestartet werden kann, ohne den Status gespeichert zu haben. Es ist
"true"
, wenn es ohne Bezug auf den vorherigen Zustand neu gestartet werden kann, und"false"
, wenn der vorherige Zustand erforderlich ist. Der Standardwert ist"false"
.Normalerweise wird die
onSaveInstanceState()
-Methode einer Aktivität aufgerufen, bevor sie vorübergehend heruntergefahren wird, um Ressourcen zu sparen. Mit dieser Methode wird der aktuelle Status der Aktivität in einemBundle
-Objekt gespeichert, das dann anonCreate()
übergeben wird, wenn die Aktivität neu gestartet wird. Wenn dieses Attribut auf"true"
festgelegt ist, wirdonSaveInstanceState()
möglicherweise nicht aufgerufen undonCreate()
wird anstelle vonBundle
übergeben, wie es beim ersten Start der Aktivität der Fall ist.null
Bei der Einstellung
"true"
kann die Aktivität ohne beibehaltenen Status neu gestartet werden. Beispielsweise wird diese Einstellung für die Aktivität verwendet, die den Startbildschirm anzeigt, damit sie nicht entfernt wird, wenn sie aus irgendeinem Grund abstürzt. android:supportsPictureInPicture
-
Gibt an, ob die Aktivität die Bild-im-Bild-Ansicht unterstützt.
android:taskAffinity
Die Aufgabe, mit der die Aktivität eine Affinität hat. Aktivitäten mit derselben Affinität gehören konzeptionell zur gleichen Aufgabe, zur gleichen „Anwendung“ aus Sicht des Nutzers. Die Affinität einer Aufgabe wird durch die Affinität ihrer übergeordneten Aktivität bestimmt.
Die Affinität bestimmt zwei Dinge: die Aufgabe, der die Aktivität neu zugeordnet wird (siehe
allowTaskReparenting
-Attribut) und die Aufgabe, in der die Aktivität beim Starten mit demFLAG_ACTIVITY_NEW_TASK
-Flag enthalten ist.Standardmäßig haben alle Aktivitäten in einer Anwendung dieselbe Affinität. Sie können dieses Attribut festlegen, um sie unterschiedlich zu gruppieren und sogar Aktivitäten, die in verschiedenen Anwendungen definiert sind, in derselben Aufgabe zu platzieren. Wenn die Aktivität keine Affinität zu einer Aufgabe hat, setzen Sie einen leeren String.
Wenn dieses Attribut nicht festgelegt ist, wird die für die Anwendung festgelegte Affinität für die Aktivität übernommen. Weitere Informationen finden Sie im Attribut
taskAffinity
des Elements<application>
. Der Name der Standardaffinität für eine Anwendung ist der Namespace, der in der Dateibuild.gradle
festgelegt ist.android:theme
- Ein Verweis auf eine Stilressource, die ein Gesamtthema für die Aktivität definiert.
Dadurch wird der Kontext der Aktivität automatisch so festgelegt, dass diese
theme
verwendet wird. Außerdem werden möglicherweise Animationseffekte für den Start der Aktivität verwendet, damit sie besser zu dem tatsächlichen Aussehen der Aktivität passt.Wenn dieses Attribut nicht festgelegt ist, wird das für die Anwendung als Ganzes festgelegte Design vom Attribut
theme
des Elements<application>
übernommen. Wenn auch dieses Attribut nicht festgelegt ist, wird das Standardsystemthema verwendet. Weitere Informationen finden Sie unter Stile und Designs. android:uiOptions
Zusätzliche Optionen für die Benutzeroberfläche einer Aktivität. Dies muss einer der folgenden Werte sein.
Wert Beschreibung "none"
Keine zusätzlichen Optionen für die Benutzeroberfläche. Das ist die Standardeinstellung. "splitActionBarWhenNarrow"
Fügen Sie eine Leiste unten auf dem Bildschirm hinzu, um Aktionselemente in der App-Leiste, auch Aktionsleiste genannt, anzuzeigen, wenn der horizontale Platz begrenzt ist, z. B. im Hochformat auf einem Smartphone. Anstatt einer kleinen Anzahl von Aktionselementen, die in der App-Leiste oben auf dem Bildschirm angezeigt werden, ist die App-Leiste in den oberen Navigationsbereich und die untere Leiste für Aktionselemente unterteilt. So ist nicht nur für die Aktionselemente, sondern auch für Navigations- und Titelelemente oben genügend Platz vorhanden. Die Menüpunkte werden nicht auf die beiden Balken verteilt. Sie werden immer zusammen angezeigt. Weitere Informationen zur App-Leiste finden Sie unter App-Leiste hinzufügen.
Dieses Attribut wurde in API-Ebene 14 hinzugefügt.
android:windowSoftInputMode
- Wie das Hauptfenster der Aktivität mit dem Fenster mit der Bildschirmtastatur interagiert. Die Einstellung für dieses Attribut wirkt sich auf zwei Dinge aus:
- Gibt an, ob die Bildschirmtastatur ausgeblendet oder sichtbar ist, wenn die Aktivität in den Mittelpunkt der Aufmerksamkeit des Nutzers rückt.
- Ob das Hauptfenster der Aktivität verkleinert wird, um Platz für die Soft-Tastatur zu schaffen, oder der Inhalt so gezoomt wird, dass der aktuelle Fokus sichtbar ist, wenn ein Teil des Fensters von der Soft-Tastatur verdeckt wird.
Die Einstellung muss einer der in der folgenden Tabelle aufgeführten Werte oder eine Kombination aus einem
"state..."
-Wert und einem"adjust..."
-Wert sein. Wenn Sie in einer der Gruppen mehrere Werte festlegen, z. B. mehrere"state..."
-Werte, sind die Ergebnisse nicht definiert. Einzelne Werte werden durch einen vertikalen Strich (|
) getrennt, wie im folgenden Beispiel gezeigt:<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
Werte, die hier festgelegt werden (außer
"stateUnspecified"
und"adjustUnspecified"
), überschreiben die im Design festgelegten Werte.Wert Beschreibung "stateUnspecified"
Ob die Bildschirmtastatur ausgeblendet oder sichtbar ist, wird nicht angegeben. Das System wählt einen geeigneten Status aus oder verwendet die Einstellung im Design. Das ist die Standardeinstellung für das Verhalten der Soft-Tastatur.
"stateUnchanged"
Die Soft-Tastatur bleibt in dem Status, in dem sie sich zuletzt befand, also sichtbar oder ausgeblendet, wenn die Aktivität in den Vordergrund rückt. "stateHidden"
Die Soft-Tastatur wird ausgeblendet, wenn der Nutzer die Aktivität auswählt, d. h., wenn er aktiv zur Aktivität wechselt, anstatt sie aufzurufen, wenn er eine andere Aktivität verlässt. "stateAlwaysHidden"
Die Soft-Tastatur ist immer ausgeblendet, wenn der Eingabefokus auf dem Hauptfenster der Aktivität liegt. "stateVisible"
Die Soft-Tastatur wird angezeigt, wenn der Nutzer die Aktivität auswählt, d. h., wenn er sich aktiv zur Aktivität vorwärts bewegt, anstatt sie zu verlassen und dann wieder zurückzugehen. "stateAlwaysVisible"
Die Soft-Tastatur ist sichtbar, wenn das Fenster den Eingabefokus erhält. "adjustUnspecified"
Ob das Hauptfenster der Aktivität verkleinert wird, um Platz für die Soft-Tastatur zu schaffen, oder der Inhalt des Fensters schwenken muss, damit der aktuelle Fokus auf dem Bildschirm sichtbar ist, ist nicht angegeben. Das System wählt automatisch einen dieser Modi aus, je nachdem, ob der Inhalt des Fensters Layoutansichten enthält, in denen der Inhalt gescrollt werden kann. Wenn eine solche Ansicht vorhanden ist, wird die Größe des Fensters angepasst, da davon ausgegangen wird, dass der gesamte Inhalt des Fensters durch Scrollen in einem kleineren Bereich sichtbar gemacht werden kann. Das ist die Standardeinstellung für das Verhalten des Hauptfensters.
"adjustResize"
Das Hauptfenster der Aktivität wird immer so angepasst, dass auf dem Bildschirm Platz für die Bildschirmtastatur ist. "adjustPan"
Das Hauptfenster der Aktivität wird nicht so verkleinert, dass Platz für die Soft-Tastatur entsteht. Stattdessen wird der Inhalt des Fensters automatisch so gezoomt, dass der aktuelle Fokus nie von der Tastatur verdeckt wird und Nutzer immer sehen können, was sie eingeben. Das ist in der Regel weniger wünschenswert als die Größenänderung, da der Nutzer möglicherweise die Soft-Tastatur schließen muss, um auf verdeckten Teilen des Fensters zuzugreifen und mit ihnen zu interagieren. "adjustNothing"
Das Hauptfenster der Aktivität wird nicht verkleinert oder gezoomt, um Platz für die Soft-Tastatur zu schaffen. Die Aktivität ist dafür verantwortlich, mithilfe der Fenstereinzüge Platz für die Soft-Tastatur zu schaffen. Bei Aktivitäten, bei denen Fenster-Einsätze korrekt verarbeitet werden, haben Sie so die beste Kontrolle darüber, wie der Inhalt des Fensters auf dem Bildschirm angezeigt wird. Dieses Attribut wurde in API-Ebene 3 eingeführt.
- eingeführt in:
- API-Ebene 1 für alle Attribute mit Ausnahme von
noHistory
undwindowSoftInputMode
, die in API-Ebene 3 hinzugefügt wurden. - Weitere Informationen:
<application>
<activity-alias>
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: 2025-01-23 (UTC).
[null,null,["Zuletzt aktualisiert: 2025-01-23 (UTC)."],[],[]]