- Syntaxe :
<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>
- Contenu dans :
<application>
- Peut contenir :
<intent-filter>
<meta-data>
<layout>
- Description :
- Déclare une activité (une sous-classe
Activity
) qui implémente une partie de l'interface utilisateur visuelle de l'application. Toutes les activités doivent être représentées par des éléments<activity>
dans le fichier manifeste. Celles qui ne sont pas déclarées ne sont pas vues par le système et ne s'exécutent jamais. - Attributs :
android:allowEmbedded
-
Indique que l'activité peut être lancée en tant qu'enfant intégré d'une autre surtout dans le cas où l'enfant vit dans un conteneur, comme un
Display
appartenant à une autre activité. Par exemple, les activités utilisées pour les notifications personnalisées Wear doivent le déclarer pour que Wear puisse afficher l'activité dans son flux contextuel, qui se trouve dans un autre processus.La valeur par défaut de cet attribut est
false
. android:allowTaskReparenting
- Indique si l'activité peut être déplacée de la tâche qui l'a démarrée vers la tâche avec laquelle elle a une affinité lorsqu'elle sera prête. La valeur possible est
"true"
si l'instance peut être déplacée et"false"
si elle reste dans la tâche où elle a commencé.Si cet attribut n'est pas défini, la valeur spécifiée par l'attribut
allowTaskReparenting
correspondant de l'élément<application>
s'applique à l'activité. La valeur par défaut est"false"
.Normalement, lorsqu'une activité est lancée, elle est associée à la tâche qui l'a démarrée et y reste jusqu'à la fin de sa durée de vie. Vous pouvez utiliser cet attribut pour remplacer la tâche parent de l'activité par celle avec laquelle elle a une affinité, lorsque sa tâche actuelle ne s'affichera plus. Généralement, cela permet de déplacer les activités d'une application vers la tâche principale qui lui est associée.
Par exemple, si un e-mail contient un lien vers une page Web, le fait de cliquer sur ce lien renvoie une activité qui permet d'afficher la page. Cette activité est définie par l'application de navigateur, mais elle est lancée dans le cadre de la tâche de l'e-mail. Si son parent est remplacé par la tâche du navigateur, l'activité s'affichera lorsque le navigateur apparaîtra au premier plan, et sera absente lorsque la tâche de l'e-mail reviendra au premier plan.
L'affinité d'une activité est définie par l'attribut
taskAffinity
. L'affinité d'une tâche est déterminée par la lecture de l'affinité de son activité racine. Par conséquent, une activité racine est toujours définie dans une tâche ayant la même affinité. Étant donné que les activités avec les modes de lancement"singleTask"
ou"singleInstance"
peuvent seulement être à la racine d'une tâche, le changement de parent est limité aux modes"standard"
et"singleTop"
. Consultez également l'attributlaunchMode
. android:alwaysRetainTaskState
- Indique si le système conserve toujours l'état de la tâche dans laquelle l'activité est conservée.
"true"
ou"false"
si le système peut rétablir l'état initial de la tâche dans certains cas. La valeur par défaut est"false"
. Cet attribut n'a de sens que pour l'activité racine d'une tâche. Il est ignoré pour toutes les autres activités.Normalement, le système efface une tâche (en supprimant toutes les activités de la pile au-dessus de l'activité racine) dans certains cas où l'utilisateur sélectionne à nouveau cette tâche depuis l'écran d'accueil. En règle générale, ce scénario se produit si l'utilisateur n'a pas consulté la tâche pendant un certain temps, par exemple 30 minutes.
Toutefois, lorsque cet attribut est défini sur
"true"
, les utilisateurs retournent toujours à la tâche dans l'état dans lequel ils l'avaient laissée, quelle que soit la façon dont ils y accèdent. Il est particulièrement utile dans les applications telles qu'un navigateur Web qui présente un grand nombre d'états (par exemple, plusieurs onglets ouverts) que les utilisateurs ne souhaitent pas perdre. android:autoRemoveFromRecents
- Indique si les tâches lancées par l'activité avec cet attribut restent sur l'écran "Recents" (Éléments récents) jusqu'à la fin de la dernière activité. Si la valeur est
true
, la tâche est automatiquement supprimée de l'écran "Recents" (Éléments récents). Cet attribut remplace l'utilisation deFLAG_ACTIVITY_RETAIN_IN_RECENTS
par l'appelant. Il doit s'agir d'une valeur booléenne :"true"
ou"false"
. android:banner
- Ressource drawable fournissant une bannière graphique étendue pour l'élément associé. Utilisez ce paramètre avec la balise
<activity>
afin de fournir une bannière par défaut pour une activité spécifique, ou avec la balise<application>
afin de fournir une bannière pour toutes les activités de l'application.Le système utilisera cette bannière pour représenter une application sur l'écran d'accueil d'Android TV. Étant donné que la bannière ne s'affiche que sur l'écran d'accueil, elle n'est spécifiée que par les applications ayant une activité qui gère l'intent
CATEGORY_LEANBACK_LAUNCHER
.Cet attribut est défini comme référence à une ressource drawable contenant l'image, par exemple
"@drawable/banner"
. Il n'existe pas de bannière par défaut.Pour en savoir plus, consultez la section Fournir une bannière sur l'écran d'accueil dans "Premiers pas avec les applications TV".
android:canDisplayOnRemoteDevices
-
Indique si l'activité peut être affichée sur un appareil distant peuvent ou non fonctionner sous Android. Il doit s'agir d'une valeur booléenne :
"true"
ou"false"
.La valeur par défaut de cet attribut est
"true"
. android:clearTaskOnLaunch
- Indique si toutes les activités sont supprimées de la tâche, à l'exception de l'activité racine, lorsqu'elle est relancée depuis l'écran d'accueil.
"true"
si la tâche est toujours supprimée de son activité racine, et"false"
dans le cas contraire. La valeur par défaut est"false"
. Cet attribut n'a de sens que pour les activités qui démarrent une nouvelle tâche (l'activité racine). Il est ignoré pour toutes les autres activités de la tâche.Lorsque la valeur est
"true"
, chaque fois que les utilisateurs relancent la tâche, ils sont redirigés vers son activité racine, indépendamment de leur dernière action dans la tâche et de l'option utilisée pour la quitter (bouton Retour ou Accueil). Lorsque cette valeur est"false"
, la tâche peut être effacée des activités dans certaines situations, mais pas toujours. Pour en savoir plus, consultez l'attributalwaysRetainTaskState
.Supposons qu'un utilisateur lance l'activité P depuis l'écran d'accueil, puis passe à l'activité Q. L'utilisateur appuie ensuite sur Accueil, puis revient à l'activité P. Normalement, il verra l'activité Q, car il s'agissait de sa dernière tâche dans la tâche P. Toutefois, si P définit cet indicateur sur
"true"
, toutes les activités qui s'y rapportent (dans le cas présent, Q) sont supprimées lorsque l'utilisateur lance l'activité P depuis l'écran d'accueil. Dès lors, l'utilisateur ne voit que P lorsqu'il retourne dans la tâche.Si cet attribut et
allowTaskReparenting
sont tous deux"true"
, toutes les activités qui peuvent changer de parent sont déplacées vers la tâche avec laquelle elles partagent une affinité. Les activités restantes sont supprimées.Cet attribut est ignoré si
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
n'est pas défini. android:colorMode
Spécifie le mode couleur de l'activité. Si spécifié, il peut s'agir de
hdr
ou dewideColorGamut
.Si la valeur est
hdr
, demande l'affichage de l'activité dans une plage HDR (High Dynamic Range) si l'appareil le permet.Si la valeur est
wideColorGamut
, demande l'affichage de l'activité en mode large gamme de couleurs sur les appareils compatibles. En mode large gamme de couleurs, une fenêtre peut s'afficher en dehors de la gammeSRGB
pour afficher des couleurs plus vives. Si l'appareil n'est pas compatible avec l'affichage en mode large gamme de couleurs, cet attribut n'a aucun effet. Pour en savoir plus sur l'affichage en mode large gamme de couleurs, consultez la section Améliorer les graphiques avec des contenus à large gamme de couleurs.android:configChanges
- Indique les changements de configuration que l'activité gère elle-même. Lorsqu'un changement de configuration se produit au moment de l'exécution, l'activité est arrêtée et redémarrée par défaut, mais la déclaration d'une configuration avec cet attribut empêche son redémarrage. Au lieu de cela, l'activité reste en cours d'exécution, et sa méthode
onConfigurationChanged()
est appelée.Remarque : N'utilisez cet attribut que dans des cas particuliers, pour améliorer les performances et la réactivité de l'application. Pour en savoir plus, consultez Gérer les modifications de configuration.
Les chaînes suivantes sont des valeurs valides pour cet attribut. Plusieurs valeurs sont séparées par
|
(par exemple,"locale|navigation|orientation"
).Valeur Description "colorMode"
Les fonctionnalités du mode couleur de l'écran (gamme de couleurs ou plage dynamique) ont changé.
Remarque:Le mode couleur demandé par l'activité avec l'attribut
colorMode
ou au moment de l'exécution est différent de la capacité des différents modes de couleur. Une activité qui modifie le mode couleur qu'elle utilise n'a aucune incidence sur la configuration, car les capacités de couleur de l'écran n'ont pas changé."density"
Modification de la densité d'affichage, par exemple, lorsque l'utilisateur spécifie une autre échelle d'affichage ou qu'un autre écran est désormais actif.
Attribut ajouté au niveau d'API 24.
"fontScale"
Modification du facteur de mise à l'échelle de la police, par exemple lorsque l'utilisateur sélectionne une nouvelle taille de police globale. "fontWeightAdjustment"
L'augmentation de l'épaisseur de la police a changé. "grammaticalGender"
Le genre grammatical de la langue a changé. Voir <ph type="x-smartling-placeholder"></ph> GrammaticalInflectionManager
.Attribut ajouté au niveau d'API 34.
"keyboard"
Modification du type de clavier, par exemple lorsque l'utilisateur branche un clavier externe. "keyboardHidden"
Modification de l'accessibilité du clavier, par exemple lorsque l'utilisateur révèle le clavier matériel. "layoutDirection"
Modification du sens de mise en page, par exemple en remplacant l'orientation de gauche à droite par l'orientation de droite à gauche.
Attribut ajouté au niveau d'API 17.
"locale"
Modification des paramètres régionaux, par exemple, lorsque l'utilisateur sélectionne une nouvelle langue dans laquelle le texte s'affiche. "mcc"
Modification du mobile country code (MCC) IMSI en cas de détection d'une carte SIM qui le met à jour. "mnc"
Modification du mobile network code (MNC) IMSI en cas de détection d'une carte SIM qui le met à jour. "navigation"
Modification du type de navigation (trackball ou pavé directionnel). Normalement, cela ne se produit pas. "orientation"
Modification de l'orientation de l'écran, par exemple lorsque l'utilisateur fait pivoter l'appareil.
Remarque : Si votre application cible Android 3.2 (niveau d'API 13) ou une version ultérieure, déclarez également les configurations
"screenLayout"
et"screenSize"
, car la mise en page et la taille de l'écran peuvent changer lorsqu'un appareil passe du mode portrait au mode paysage, ou vice versa."screenLayout"
Modification de la mise en page de l'écran, par exemple lorsqu'un autre écran devient actif. "screenSize"
Modification de la taille d'écran disponible actuellement.
Ce changement concerne la taille actuellement disponible par rapport au format actuel. Il intervient lorsque l'utilisateur passe du mode paysage au mode portrait, et vice versa.
Attribut ajouté au niveau d'API 13.
"smallestScreenSize"
Modification de la taille de l'écran physique.
Il s'agit d'un changement de taille, quelle que soit l'orientation. Par conséquent, le changement n'intervient que lorsque la taille réelle de l'écran physique a changé (par exemple, en passant à un écran externe). Une modification de cette configuration correspond à une modification de la configuration de
smallestWidth
.Attribut ajouté au niveau d'API 13.
"touchscreen"
Modification de l'écran tactile. Normalement, cela ne se produit pas. "uiMode"
Modification du mode d'interface utilisateur, par exemple lorsque l'utilisateur place l'appareil sur un bureau ou un support voiture, ou lorsque le mode Nuit change. Pour en savoir plus sur les différents modes d'interface utilisateur, consultez UiModeManager
.Attribut ajouté au niveau d'API 8.
Toutes ces modifications de configuration peuvent avoir une incidence sur les valeurs de ressources observées par l'application. Par conséquent, lorsque la méthode
onConfigurationChanged()
est appelée, il est généralement nécessaire de récupérer à nouveau toutes les ressources, y compris les mises en page de vues et les drawables, pour gérer correctement la modification.Remarque : Pour gérer toutes les modifications de configuration liées au mode multifenêtre, utilisez à la fois
"screenLayout"
et"smallestScreenSize"
. Le mode multifenêtre est compatible avec Android 7.0 (niveau d'API 24) ou version ultérieure. android:directBootAware
Indique si l'activité est compatible avec le démarrage direct, c'est-à-dire si elle peut s'exécuter avant que l'utilisateur déverrouille l'appareil.
Remarque : Pendant le démarrage direct, une activité de votre application ne peut accéder qu'aux données stockées dans l'espace de stockage protégé par l'appareil.
La valeur par défaut est
"false"
.android:documentLaunchMode
- Spécifie la façon dont la nouvelle instance d'une activité doit être ajoutée à une tâche chaque fois qu'elle est lancée.
Cet attribut permet à l'utilisateur d'afficher plusieurs documents de la même application sur l'écran "Recents" (Éléments récents).
Cet attribut présente quatre valeurs qui entraînent les effets suivants lorsque l'utilisateur ouvre un document avec l'application :
Valeur Description "intoExisting"
Le système recherche une tâche dont l'intent de base ComponentName
et l'URI de données correspondent à ceux de l'intent de lancement. Si le système trouve cette tâche, il l'efface et redémarre avec l'activité racine qui reçoit un appel àonNewIntent(android.content.Intent)
. Dans le cas contraire, il en crée une autre."always"
L'activité crée une tâche pour le document, même s'il est déjà ouvert. Cela revient à définir les indicateurs FLAG_ACTIVITY_NEW_DOCUMENT
etFLAG_ACTIVITY_MULTIPLE_TASK
."none"
L'activité ne crée pas de tâche pour elle-même. Il s'agit de la valeur par défaut, qui crée une tâche uniquement lorsque FLAG_ACTIVITY_NEW_TASK
est défini. L'écran "Recents" (Éléments récents) traite l'activité normalement : il affiche une seule tâche pour l'application, qui reprend à partir de n'importe quelle activité appelée en dernier par l'utilisateur."never"
L'activité n'est pas lancée dans un nouveau document, même si l'intent contient FLAG_ACTIVITY_NEW_DOCUMENT
. La définition de cette option remplace le comportement des indicateursFLAG_ACTIVITY_NEW_DOCUMENT
etFLAG_ACTIVITY_MULTIPLE_TASK
, s'ils sont définis dans l'activité, et l'écran "Recents" (Éléments récents) affiche une seule tâche pour l'application, qui reprend à partir de la dernière activité appelée par l'utilisateur.Remarque : Pour les valeurs autres que
"none"
et"never"
, l'activité est définie aveclaunchMode="standard"
. Si cet attribut n'est pas spécifié,documentLaunchMode="none"
est utilisé. android:enabled
- Indique si l'activité peut être instanciée par le système. Cette valeur indique
"true"
si l'activité peut être instanciée, et"false"
dans le cas contraire. La valeur par défaut est"true"
.L'élément
<application>
possède son propre attributenabled
qui s'applique à tous les composants d'application, y compris les activités. Pour que le système puisse instancier l'activité, les attributs<application>
et<activity>
doivent être tous les deux définis sur la valeur par défaut"true"
. Si l'un d'eux indique"false"
, l'activité ne peut pas être instanciée. android:enableOnBackInvokedCallback
- Cet indicateur vous permet d'activer les animations système de prévisualisation au niveau de l'activité. Ce comportement facilite la migration des applications multi-activités volumineuses vers la prévisualisation des gestes Retour.
Définir
android:enableOnBackInvokedCallback=false
désactive les animations de prévisualisation du Retour soit au niveau de l'activité, soit au niveau de l'application, selon l'endroit où vous définissez la balise, et demande au système d'ignorer les appels à l'API de plate-formeOnBackInvokedCallback
. android:excludeFromRecents
Si la tâche initiée par cette activité est exclue de Écran "Récents". Autrement dit, lorsque cette activité est l'activité racine d'une nouvelle tâche, cet attribut détermine si la tâche apparaîtra dans la liste des applications récentes. Il est
"true"
si la tâche est exclue de la liste ;"false"
est inclus. La valeur par défaut est"false"
.android:exported
Si l'activité peut être lancée par des composants d'autres applications:
- Si cette valeur indique
"true"
, l'activité est accessible à toutes les applications et peut être lancée grâce au nom de classe exact. - Si la valeur est
"false"
, l'activité ne peut être lancée que par des composants de la même application, des applications ayant le même ID utilisateur ou des composants système privilégiés. En l'absence de filtres d'intent, il s'agit de la valeur par défaut.
Si une activité dans votre application inclut des filtres d'intent, définissez cet élément sur
"true"
pour permettre à d'autres applications de la démarrer (par exemple, s'il s'agit de l'activité principale de l'application et qu'elle inclut lacategory
android.intent.category.LAUNCHER
).Si cet élément est défini sur
"false"
et qu'une application tente de démarrer l'activité, le système génère une exceptionActivityNotFoundException
.Cet attribut n'est pas le seul moyen de limiter l'exposition d'une activité à d'autres applications. Les autorisations permettent également de limiter les entités externes pouvant appeler l'activité. Consultez l'attribut
permission
.- Si cette valeur indique
android:finishOnTaskLaunch
- Indique si une instance existante de l'activité est arrêtée, à l'exception de l'activité racine, lorsque l'utilisateur relance sa tâche en la sélectionnant sur l'écran d'accueil. Cette valeur indique
"true"
si l'instance est arrêtée, et"false"
dans le cas contraire. La valeur par défaut est"false"
.Si cet attribut et
allowTaskReparenting
sont tous les deux"true"
, il prévaut sur l'autre. L'affinité de l'activité est ignorée. L'activité ne change pas de parent, mais est détruite.Cet attribut est ignoré si
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
n'est pas défini. android:hardwareAccelerated
- Indique si le rendu avec accélération matérielle doit être activé pour cette activité.
"true"
est défini si tel est le cas, et"false"
dans le cas contraire. La valeur par défaut est"false"
.Sous Android 3.0 ou version supérieure, un moteur de rendu OpenGL avec accélération matérielle est disponible pour les applications. Il permet d'améliorer les performances de nombreuses opérations graphiques 2D courantes. Lorsque le moteur de rendu avec accélération matérielle est activé, la plupart des opérations dans Canvas, Paint, Xfermode, ColorFilter, Shader et Camera sont accélérées.
Cela se traduit par des animations et un défilement plus fluides, ainsi que par une meilleure réactivité globale, même pour les applications qui n'utilisent pas explicitement les bibliothèques OpenGL du framework. En raison de l'augmentation des ressources requises pour activer l'accélération matérielle, votre application utilisera plus de RAM.
Les opérations OpenGL en 2D ne sont pas toutes accélérées. Si vous activez le moteur de rendu avec accélération matérielle, vérifiez si votre application peut l'utiliser générer d'erreurs.
android:icon
Icône représentant l'activité. L'icône s'affiche pour les utilisateurs lorsqu'une représentation de l'activité est requise à l'écran. Par exemple, les icônes des activités qui lancent des tâches sont affichées dans la fenêtre du lanceur d'applications. L'icône est souvent accompagnée d'un libellé ; Pour en savoir plus sur le libellé, consultez l'attribut
android:label
.Cet attribut est défini comme référence à une ressource drawable contenant la définition de l'image. Si cette valeur n'est pas définie, l'icône spécifiée pour l'application dans son ensemble est utilisée à la place. Pour en savoir plus, consultez l'attribut
icon
de l'élément<application>
.L'icône de l'activité, définie ici ou par l'élément
<application>
, est également l'icône par défaut de tous les filtres d'intent de l'activité. Pour en savoir plus, consultez l'attributicon
de l'élément<intent-filter>
.android:immersive
- Définit le paramètre de mode immersif de l'activité actuelle. Si la valeur est
"true"
, le membreActivityInfo.flags
a toujours sonFLAG_IMMERSIVE
bit défini, même si le Le mode immersif change au moment de l'exécution à l'aide de la méthodesetImmersive()
. android:label
Libellé compréhensible de l'activité. Ce libellé s'affiche à l'écran lorsque l'activité est présentée à l'utilisateur. Il s'affiche souvent avec l'icône d'activité. Si cet attribut n'est pas défini, le libellé défini pour l'application dans son ensemble est utilisé à la place. afficher l'élément
<application>
label
.Le libellé de l'activité, défini ici ou par l'élément
<application>
, est également le libellé par défaut de tous les filtres d'intent de l'activité. Pour en savoir plus, consultez l'attributlabel
de l'élément<intent-filter>
.Le libellé est défini comme une référence à une ressource de chaîne, de sorte qu'il puisse être localisé comme les autres chaînes de l'interface utilisateur. Toutefois, lorsque vous développez l'application, vous pouvez également le définir comme une chaîne brute.
android:launchMode
Instruction sur le lancement de l'activité. Il existe cinq modes, qui fonctionnent avec les indicateurs d'activité (constantes
FLAG_ACTIVITY_*
) dans les objetsIntent
pour déterminer ce qui se passe l'activité est appelée pour gérer un intent:"standard"
"singleTop"
"singleTask"
"singleInstance"
"singleInstancePerTask"
Le mode par défaut est
"standard"
.Comme indiqué dans le tableau suivant, les modes se divisent en deux groupes principaux, avec les activités
"standard"
et"singleTop"
d'un côté, et les activités"singleTask"
,"singleInstance"
et"singleInstancePerTask"
de l'autre. Une activité avec le mode de lancement"standard"
ou"singleTop"
peut être instanciée plusieurs fois.Les instances peuvent appartenir à n'importe quelle tâche et se trouver n'importe où dans la tâche. En règle générale, elles sont lancées dans la tâche appelée
startActivity()
, sauf si l'objetIntent
contient une instructionFLAG_ACTIVITY_NEW_TASK
, auquel cas une autre tâche est choisie. Pour en savoir plus, consultez l'attributtaskAffinity
.En revanche, les activités
"singleTask"
,"singleInstance"
et"singleInstancePerTask"
ont des comportements différents."singleInstancePerTask"
est toujours à la racine de la tâche de l'activité. De plus, l'appareil ne peut contenir qu'une seule instance de l'activité"singleInstance"
à la fois, tandis que l'activité"singleInstancePerTask
peut être instanciée plusieurs fois dans différentes tâches lorsqueFLAG_ACTIVITY_MULTIPLE_TASK
ouFLAG_ACTIVITY_NEW_DOCUMENT
est défini.Une activité avec le mode de lancement
"singleTask"
combine les comportements de"singleInstance"
et"singleInstancePerTask"
: l'activité peut être instanciée plusieurs fois et peut se trouver n'importe où dans une tâche de même affinité (taskAffinity
). Toutefois, l'appareil ne peut contenir qu'une seule tâche pour localiser l'activité"singleTask"
à la racine de la tâche.Les modes
"standard"
et"singleTop"
diffèrent l'un de l'autre sur un seul point : chaque fois qu'il existe un nouvel intent pour une activité"standard"
, une instance de la classe est créée pour répondre cet intent. Chaque instance gère un seul intent. De même, une instance d'une activité"singleTop"
peut également être créée pour gérer un nouvel intent.Toutefois, si la tâche cible possède déjà une instance de l'activité en haut de sa pile, cette instance recevra le nouvel intent (dans un appel
onNewIntent()
). Aucune instance ne sera créée. Sinon, si une instance existante de l'activité"singleTop"
se trouve dans la tâche cible, mais pas en haut de la pile, ou si elle est en haut d'une pile, mais pas dans la tâche cible, une instance sera créée et envoyée sur la pile.De même, si l'utilisateur accède à une activité qui se trouve plus haut dans la pile actuelle, le comportement est déterminé par le mode de lancement de l'activité parent. Si l'activité parent utilise le mode de lancement
singleTop
(ou que l'intentup
contientFLAG_ACTIVITY_CLEAR_TOP
), le parent est placé en haut de la pile, et son état est préservé.L'intent de navigation est reçu par la méthode
onNewIntent()
de l'activité parent. Si le mode de lancementstandard
est activé pour l'activité parent et que l'intentup
ne contient pasFLAG_ACTIVITY_CLEAR_TOP
, l'activité actuelle et son parent sortent tous deux de la pile. Par ailleurs, une nouvelle instance de l'activité parent est créée pour recevoir l'intent de navigation.Le mode
"singleInstance"
diffère également de"singleTask"
et"singleInstancePerTask"
sur un seul point : une activité avec le mode de lancement"singleTask"
ou"singleInstancePerTask"
permet aux autres activités, notamment les activités"standard"
et"singleTop"
, de faire partie de sa tâche.En revanche, une activité
"singleInstance"
n'autorise aucune autre activité à faire partie de sa tâche. Il doit s'agir de la seule activité de la tâche. Si une autre activité démarre, elle sera attribuée à une autre tâche, comme siFLAG_ACTIVITY_NEW_TASK
était dans l'intent.Cas d'utilisation Mode de lancement Plusieurs instances ? Commentaires Lancements normaux pour la plupart des activités "standard"
Oui Par défaut. Le système crée toujours une instance de l'activité dans la tâche cible et y achemine l'intent. "singleTop"
Sous certaines conditions Si une instance de l'activité existe déjà en haut de la tâche cible, le système achemine l'intent vers cette instance via un appel à sa méthode onNewIntent()
, au lieu de créer une instance de l'activité.Lancements spécialisés
(non recommandés pour une utilisation générale)"singleTask"
Sous certaines conditions Le système crée l'activité à la racine d'une nouvelle tâche ou localise l'activité au niveau d'une tâche existante avec la même affinité. Si une instance de l'activité existe déjà et se trouve à la racine de la tâche, le système achemine l'intent vers l'instance existante via un appel à sa méthode onNewIntent()
, au lieu d'en créer une."singleInstance"
Non Identique à "singleTask"
, sauf que le système ne lance aucune autre activité dans la tâche contenant l'instance. L'activité est toujours le seul et unique membre de sa tâche."singleInstancePerTask"
Sous certaines conditions L'activité ne peut être exécutée qu'en tant qu'activité racine de la tâche (en tant que première activité qui l'a créée). Par conséquent, il n'y aura qu'une seule instance de cette activité dans une tâche. Cependant, l'activité peut être instanciée plusieurs fois dans différentes tâches. Comme indiqué dans le tableau précédent,
"standard"
est le mode par défaut et convient à la plupart des types d'activités."singleTop"
est également un mode de lancement courant et utile pour de nombreux types d'activités. Les autres modes ("singleTask"
,"singleInstance"
et"singleInstancePerTask"
) ne sont pas appropriés pour la plupart des applications. Ils entraînent un modèle d'interaction que les utilisateurs ne connaissent pas et qui sont très différents de la plupart des autres applications.Quel que soit le mode de lancement choisi, assurez-vous de tester la facilité d'utilisation de l'activité pendant le lancement et lorsque vous y revenez d'autres activités et tâches en utilisant le bouton Retour.
Pour en savoir plus sur les modes de lancement et leur interaction avec les options
Intent
, consultez la section Tâches et pile "Retour".android:lockTaskMode
- Détermine comment le système présente cette activité lorsque l'appareil s'exécute en mode tâches verrouillées.
Android peut exécuter des tâches selon une approche immersive appelée "mode tâches verrouillées". Lorsque le système s'exécute en mode tâches verrouillées, les utilisateurs ne peuvent généralement pas voir les notifications, accéder aux applications non autorisées ou revenir à l'écran d'accueil, sauf si l'application Home figure sur la liste d'autorisation.
Seules les applications ajoutées à la liste d'autorisation par un outil de contrôle des règles relatives aux appareils (DPC) peuvent s'exécuter lorsque le système est en mode tâches verrouillées. Toutefois, le système et les applications privilégiées peuvent s'exécuter en mode tâches verrouillées sans être ajoutés à la liste d'autorisation.
Cette valeur peut correspondre à l'une des valeurs de chaîne
R.attr.lockTaskMode
suivantes :Valeur Description "normal"
Valeur par défaut. Il s'agit de la valeur par défaut. Les tâches ne sont pas lancées en mode tâches verrouillées, mais peuvent y être placées en appelant startLockTask()
."never"
Les tâches ne sont pas lancées en mode
lockTask
, et l'utilisateur de l'appareil ne peut pas les épingler à partir de l'écran "Recents" (Éléments récents).Remarque : Ce mode n'est disponible que pour les applications système et privilégiées. Les applications non privilégiées ayant cette valeur sont traitées comme
normal
."if_whitelisted"
Si l'outil DPC autorise ce package à l'aide de DevicePolicyManager.setLockTaskPackages()
, ce mode est identique àalways
, sauf que l'activité doit appelerstopLockTask()
avant de pouvoir terminer s'il s'agit de la dernière tâche verrouillée. Si l'outil DPC n'autorise pas ce package, ce mode est identique ànormal
."always"
Les tâches associées à cette activité sont toujours lancées en mode tâches verrouillées. Si le système est déjà en mode tâches verrouillées au lancement de cette tâche, la nouvelle tâche est lancée en plus de la tâche actuelle. Pour que les tâches lancées dans ce mode quittent le mode tâches verrouillées, appelez
finish()
.Remarque : Ce mode n'est disponible que pour les applications système et privilégiées. Les applications non privilégiées ayant cette valeur sont traitées comme
normal
.Cet attribut a été introduit dans le niveau d'API 23.
android:maxRecents
- Nombre maximal de tâches associées à cette activité dans l'écran "Recents" (Éléments récents). Lorsque ce nombre d'entrées est atteint, le système supprime de l'écran "Recents" (Éléments récents) l'instance la moins récemment utilisée. Les valeurs valides sont des entiers compris entre 1 et 50, ou entre 1 et 25 sur les appareils à faible mémoire. Utiliser zéro n'est pas valide. La valeur par défaut est 16.
android:maxAspectRatio
Format maximal accepté par l'activité. Si l'application s'exécute sur un appareil dont le format est plus large, le système recadre automatiquement l'application, laissant des portions de l'écran inutilisées pour qu'elle puisse s'exécuter au format maximal spécifié.
Le format maximal est exprimé sous la forme décimale correspondant au quotient de la dimension la plus longue de l'appareil, divisé par sa dimension la plus courte. Par exemple, si le format maximal est de 7:3, définissez la valeur de cet attribut sur 2,33.
Sur les appareils non connectés, la valeur de cet attribut doit être 1,33 ou supérieure. Sur les accessoires connectés, elle doit être de 1 ou plus. Dans le cas contraire, le système ignore la valeur définie.
Remarque : Cet attribut est ignoré si la valeur
resizeableActivity
de l'activité est définie sur "true", car cela signifie que votre activité accepte toutes les tailles.Pour en savoir plus sur cet attribut, consultez la section Déclarer un format maximum.
android:multiprocess
- Indique si une instance de l'activité peut être lancée dans le processus du composant qui l'a lancée.
"true"
si tel est le cas, et"false"
dans le cas contraire. La valeur par défaut est"false"
.Normalement, une nouvelle instance d'une activité est lancée dans le processus de l'application qui l'a définie. Toutes les instances de l'activité s'exécutent donc dans le même processus. Toutefois, si cet indicateur est défini sur
"true"
, les instances de l'activité peuvent s'exécuter dans plusieurs processus, ce qui permet au système de créer des instances partout où elles sont utilisées (à condition que les autorisations le permettent), ce qui n'est presque jamais nécessaire ni souhaitable. android:name
- Nom de la classe qui implémente l'activité, sous-classe de
Activity
. La valeur de l'attribut est généralement un nom de classe complet, tel que"com.example.project.ExtracurricularActivity"
. Cependant, pour faire court, si le premier caractère du nom est un point (".ExtracurricularActivity"
, par exemple), il est ajouté à l'espace de noms spécifié dans l'élémentbuild.gradle
.Une fois l'application publiée, ne modifiez pas ce nom, sauf si vous définissez
android:exported="false"
. Il n'y a pas de valeur par défaut. Vous devez renseigner le nom. android:noHistory
- Indique si l'activité est supprimée de la pile d'activités et terminée, en appelant sa méthode
finish()
, lorsque l'utilisateur la quitte et qu'elle n'est plus visible à l'écran."true"
si tel est le cas, et"false"
dans le cas contraire. La valeur par défaut est"false"
.La valeur
"true"
signifie que l'activité ne laissera pas de trace historique. Elle ne restera pas dans la pile d'activités de la tâche. L'utilisateur ne pourra donc pas y revenir. Dans ce cas,onActivityResult()
n'est jamais appelé si vous démarrez une autre activité pour démarrer un processus à partir de cette activité.Cet attribut a été introduit dans le niveau d'API 3.
android:parentActivityName
- Nom de classe du parent logique de l'activité. Le nom ici doit correspondre au nom de classe attribué à l'attribut
android:name
de l'élément<activity>
correspondant.Le système lit cet attribut pour déterminer quelle activité doit démarrer lorsque l'utilisateur appuie sur le bouton "Haut" de la barre d'action. Le système peut également utiliser ces informations pour synthétiser une pile d'activités antérieure avec
TaskStackBuilder
.Pour prendre en charge les niveaux d'API 4 à 16, vous pouvez également déclarer l'activité parent avec un élément
<meta-data>
qui spécifie une valeur pour"android.support.PARENT_ACTIVITY"
:<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>
Pour en savoir plus sur la déclaration de l'activité parent afin de permettre la navigation vers le haut, consultez la section Ajouter la navigation vers le haut.
Cet attribut a été introduit dans le niveau d'API 16.
android:persistableMode
Définit la manière dont l'instance d'une activité est préservée dans une tâche associée lors des redémarrages d'appareils.
Si l'activité racine d'une tâche définit la valeur de cet attribut sur
persistRootOnly
, seule l'activité racine est conservée. Dans le cas contraire, les activités qui se trouvent plus haut dans la pile "Retour" de la tâche sont examinées. Toute activité qui définit la valeur de cet attribut surpersistAcrossReboots
est conservée.Si vous utilisez cet attribut, vous devez lui attribuer la valeur suivante :
Valeur Description persistRootOnly
Valeur par défaut. Lorsque le système redémarre, la tâche est conservée, mais seul l'intent de lancement de l'activité racine est utilisé.
Lorsque l'intent de lancement de votre application charge l'activité racine de votre application, l'activité ne reçoit pas d'objet
PersistableBundle
. Par conséquent, n'utilisez pasonSaveInstanceState()
pour préserver l'état de l'activité racine de votre application lors du redémarrage d'un appareil.Remarque : Cette valeur d'attribut n'affecte le comportement de votre application que si elle est définie sur l'activité racine de votre application.
persistAcrossReboots
L'état de cette activité est conservé, ainsi que l'état de chaque activité située plus haut dans la pile "Retour", dont l'attribut
persistableMode
est défini surpersistAcrossReboots
. Si une activité ne comporte pas d'attributpersistableMode
défini surpersistAcrossReboots
ou qu'elle est lancée via l'indicateurIntent.FLAG_ACTIVITY_NEW_DOCUMENT
, cette activité, ainsi que toutes les activités situées plus haut dans la pile "Retour" ne sont pas conservées.Lorsqu'un intent charge une activité dont l'attribut
persistableMode
est défini surpersistAcrossReboots
dans votre application, l'activité reçoit un objetPersistableBundle
dans sa méthodeonCreate()
. Par conséquent, vous pouvez utiliseronSaveInstanceState()
pour conserver l'état d'une activité lors du redémarrage d'un appareil, à condition que l'attributpersistableMode
soit défini surpersistAcrossReboots
.Remarque : Cette valeur d'attribut affecte le comportement de votre application, même si elle est définie sur une activité autre que l'activité racine de votre application.
persistNever
L'état de l'activité n'est pas conservé.
Remarque : Cette valeur d'attribut n'affecte le comportement de votre application que si elle est définie sur l'activité racine de votre application.
Cet attribut a été introduit dans le niveau d'API 21.
android:permission
- Nom d'une autorisation que les clients doivent avoir pour lancer l'activité ou qu'ils doivent obtenir pour répondre à un intent. Si un appelant de
startActivity()
oustartActivityForResult()
n'a pas reçu l'autorisation spécifiée, son intent ne sera pas transmis à l'activité.Si cet attribut n'est pas spécifié, l'autorisation définie par l'attribut
permission
de l'élément<application>
s'applique à l'activité. Si aucun attribut n'est défini, l'activité n'est pas protégée par une autorisation.Pour en savoir plus, consultez la section Autorisations de la présentation du fichier manifeste d'application, ainsi que les conseils de sécurité.
android:process
Nom du processus dans lequel l'activité s'exécute. Normalement, tous les composants d'une application s'exécutent avec un nom de processus par défaut créé pour celle-ci, et vous n'avez pas besoin d'utiliser cet attribut. Toutefois, si nécessaire, vous pouvez remplacer le nom du processus par défaut par cet attribut, ce qui vous permet de répartir les composants de l'application sur plusieurs processus.
Si le nom assigné à cet attribut commence par le signe deux-points (
:
), un processus réservé à l'application est créé lorsque cela est nécessaire, et l'activité est exécutée dans ce processus.Si le nom du processus commence par une lettre minuscule, l'activité sera exécutée dans un processus global du même nom, à condition qu'elle soit autorisée à le faire. Cela permet aux composants de différentes applications de partager un processus, ce qui réduit l'utilisation des ressources.
L'attribut
process
de l'élément<application>
peut définir un nom de processus par défaut différent pour tous les composants.android:relinquishTaskIdentity
Si l'activité cède ses identifiants de tâche à une activité supérieure à celle-ci dans le pile de tâches. Une tâche dont l'attribut racine est défini sur
"true"
remplace l'attribut de baseIntent
par celle de l'activité suivante de la tâche.Si l'attribut de l'activité suivante est également défini sur
"true"
, l'Intent
de base sera généré pour toute activité lancée dans la même tâche. Le processus se poursuit pour chaque activité jusqu'à ce qu'une activité corresponde à l'attribut"false"
. La valeur par défaut est"false"
.Cet attribut défini sur
"true"
permet également à l'activité d'utiliserActivityManager.TaskDescription
pour modifier les libellés, les couleurs et les icônes de l'écran "Recents" (Éléments récents).android:requireContentUriPermissionFromCaller
-
Spécifie les autorisations nécessaires pour lancer cette activité lors de la transmission les URI de contenu. La valeur par défaut est
none
, ce qui signifie qu'aucune des autorisations sont requises. La définition de cet attribut limite l'activité en fonction des autorisations du demandeur. Si le demandeur n'a pas les autorisations requises, le démarrage de l'activité sera refusé via unSecurityException
.Notez que l'application fonctionne pour les URI de contenu dans
Intent.getData()
,Intent.EXTRA_STREAM
, etIntent.getClipData()
Peut être une valeur de chaîne, utilisant "\\;" pour échapper des caractères tels que "\\n" ou "\\uxxxx" pour un caractère Unicode ;
Doit correspondre à l'une des valeurs constantes suivantes.
Constante Valeur Description aucune 0 Par défaut, aucune autorisation spécifique n'est requise. lire 1 oblige le demandeur à disposer d'un accès en lecture aux URI de contenu transmis. readAndWrite 4 oblige le demandeur à disposer d'un accès en lecture et en écriture aux URI de contenu transmis. lecture ou écriture 3 oblige le demandeur à disposer d'un accès en lecture ou en écriture aux URI de contenu transmis. écrire 2 oblige le demandeur à disposer d'un accès en écriture aux URI de contenu transmis. android:resizeableActivity
-
Indique si l'application est compatible avec le mode multifenêtre. Vous pouvez définir cet attribut dans l'élément
<activity>
ou<application>
.Si vous définissez cet attribut sur
"true"
, l'utilisateur peut lancer l'activité en mode Écran partagé et en mode Format libre. Si vous le définissez sur"false"
, l'application ne peut pas être testée ni optimisée pour un environnement multifenêtre. Pour activer l'activité en mode multifenêtre, le système peut toujours appliquer le mode de compatibilité.Définir cet attribut sur
"false"
ne garantit pas qu'aucune autre application en mode multifenêtre (telle que Picture-in-picture) n'est visible à l'écran ni sur d'autres écrans. Par conséquent, cela ne signifie pas que votre application dispose d'un accès exclusif aux ressources.Si votre application cible un niveau d'API 24 ou supérieur et que vous ne spécifiez pas de valeur pour cet attribut, la valeur de l'attribut est définie par défaut sur
"true"
.Si votre application cible le niveau d'API 31 ou supérieur, cet attribut fonctionne différemment sur les petits et les grands écrans :
- Grands écrans (SW = > 600 dp) : toutes les applications sont compatibles avec le mode multifenêtre. L'attribut indique si une application peut être redimensionnée (et non si elle est compatible avec le mode multifenêtre). Si la valeur est
resizeableActivity="false"
, l'application passe en mode de compatibilité lorsque cela est nécessaire, conformément aux dimensions d'affichage. - Petits écrans (SW < 600 dp) : si
resizeableActivity="true"
et si la largeur et la hauteur minimales de l'activité sont conformes aux exigences du mode multifenêtre, l'application est compatible avec le mode multifenêtre. Si cette valeur indiqueresizeableActivity="false"
, l'application n'est pas compatible avec le mode multifenêtre, quelles que soient la largeur et la hauteur minimales de l'activité.
Remarque : Les fabricants d'appareils peuvent ignorer le comportement du niveau d'API 31.
Cet attribut a été ajouté au niveau d'API 24.
Remarque : La valeur de l'activité racine d'une tâche est appliquée à toutes les autres activités qui y sont lancées. Autrement dit, si l'activité racine d'une tâche peut être redimensionnée, le système considère toutes les autres activités de cette tâche comme redimensionnables. Si l'activité racine n'est pas redimensionnable, les autres activités de la tâche ne le sont pas.
- Grands écrans (SW = > 600 dp) : toutes les applications sont compatibles avec le mode multifenêtre. L'attribut indique si une application peut être redimensionnée (et non si elle est compatible avec le mode multifenêtre). Si la valeur est
android:screenOrientation
Orientation de l'activité demandée.
Lorsqu'une activité occupe tout l'écran, l'orientation demandée est une suggestion modifier l'orientation de cet écran pour qu'elle corresponde à la valeur demandée. Cela peut entraîner une qui diffère de l'orientation physique de l'écran dans l'espace, à l'utilisateur de faire pivoter l'appareil pour continuer à utiliser l'application. Sur Android 12 (niveau d'API) 31) et supérieurs, les fabricants peuvent configurer les appareils individuellement (comme l'écran pour tablette d'un appareil pliable) d'ignorer cette suggestion, forcer l'affichage au format letterbox d'une activité dans l'orientation préférée de l'appareil de l'utilisateur. Ce permet de faire en sorte que l'orientation de l'activité corresponde à celle demandée sans que l'utilisateur ait besoin de faire pivoter physiquement son appareil.
En mode multifenêtre, l'orientation demandée n'est pas suggérée pour l'ensemble l'orientation. Si l'activité est letterbox : la valeur affecte le format letterbox appliqué à l'activité.
Cette valeur peut correspondre à l'une des chaînes suivantes :
"unspecified"
Valeur par défaut. Le système choisit l'orientation. La règle utilisée et les choix effectués dans des contextes spécifiques peuvent varier d'un appareil à l'autre. "behind"
Même orientation que l'activité située juste en dessous dans la pile d'activités. "landscape"
Orientation paysage (l'écran est plus large que haut). "portrait"
Orientation portrait (l'écran est plus haut que large). "reverseLandscape"
Orientation paysage dans le sens opposé au mode paysage standard. Attribut ajouté au niveau d'API 9. "reversePortrait"
Orientation portrait dans le sens opposé au mode portrait standard. Attribut ajouté au niveau d'API 9. "sensorLandscape"
Orientation paysage standard ou inversée selon le capteur de l'appareil. Le capteur est utilisé même si l'utilisateur a verrouillé la rotation basée sur le capteur. Attribut ajouté au niveau d'API 9. "sensorPortrait"
Orientation portrait standard ou inversée selon le capteur de l'appareil. Le capteur est utilisé même si l'utilisateur a verrouillé la rotation basée sur le capteur. Toutefois, selon la configuration de l'appareil, la rotation de 180 degrés par rapport à l'original n'est pas toujours autorisée. Attribut ajouté au niveau d'API 9. "userLandscape"
Orientation paysage standard ou inversée selon le capteur de l'appareil et les préférences de l'utilisateur. Attribut ajouté au niveau d'API 18. "userPortrait"
Orientation portrait standard ou inversée selon le capteur de l'appareil et les préférences de l'utilisateur. Toutefois, selon la configuration de l'appareil, la rotation de 180 degrés par rapport à l'original n'est pas toujours autorisée. Attribut ajouté au niveau d'API 18. "sensor"
L'orientation est déterminée par le capteur d'orientation de l'appareil. L'orientation de l'écran dépend de la façon dont l'utilisateur tient l'appareil. Elle change lorsqu'il fait pivoter l'appareil. Cependant, certains appareils ne pivotent pas par défaut dans les quatre orientations possibles. Pour activer les quatre orientations, utilisez "fullSensor"
. Le capteur est utilisé même si l'utilisateur a verrouillé la rotation basée sur le capteur."fullSensor"
L'une des quatre orientations est déterminée par le capteur d'orientation. Cette méthode est semblable à "sensor"
, à la différence près qu'elle autorise l'une des quatre orientations d'écran possibles, quelles que soient les actions habituellement possibles avec l'appareil. Par exemple, certains appareils n'utilisent généralement pas le mode portrait ou paysage inversé, mais ces orientations sont tout de même activées. Attribut ajouté au niveau d'API 9."nosensor"
L'orientation est déterminée sans tenir compte d'un capteur d'orientation physique. Le capteur est ignoré. L'écran ne pivote donc pas en fonction de la façon dont l'utilisateur déplace l'appareil. "user"
Orientation préférée actuelle de l'utilisateur. "fullUser"
Si l'utilisateur a verrouillé la rotation basée sur le capteur, le comportement est le même que l'attribut user
. Sinon, le comportement est le même quefullSensor
et l'une des quatre orientations d'écran est possible. Attribut ajouté au niveau d'API 18."locked"
Verrouille la direction actuelle de l'orientation, quelle qu'elle soit. Attribut ajouté au niveau d'API 18. Remarque : Lorsque vous déclarez l'une des valeurs paysage ou portrait, elle est considérée comme une exigence stricte pour l'orientation dans laquelle l'activité s'exécute. La valeur que vous déclarez permet un filtrage par services tels que Google Play, afin que votre application ne soit disponible que sur les appareils compatibles avec l'orientation requise par vos activités. Par exemple, si vous déclarez
"landscape"
,"reverseLandscape"
ou"sensorLandscape"
, votre application ne sera disponible que pour les appareils compatibles avec l'orientation paysage.Vous devez également déclarer explicitement que votre application nécessite l'orientation portrait ou paysage avec l'élément
<uses-feature>
(par exemple,<uses-feature android:name="android.hardware.screen.portrait"/>
). Il s'agit d'un comportement de filtrage fourni par Google Play et d'autres services compatibles. La plate-forme elle-même ne contrôle pas si votre application peut être installée lorsqu'un appareil n'accepte que certaines orientations.android:showForAllUsers
-
Indique si l'activité est affichée lorsque l'utilisateur actuel de l'appareil est différent de celui qui a lancé l'activité. Vous pouvez définir cet attribut sur une valeur littérale (
"true"
ou"false"
) ou définir un attribut de ressource ou thématique contenant une valeur booléenne.Cet attribut a été ajouté au niveau d'API 23.
android:stateNotNeeded
- Indique si l'activité peut être arrêtée et redémarrée avec succès sans avoir enregistré son état.
"true"
si elle peut être redémarrée sans référence à son état précédent, et"false"
si son état précédent est requis. La valeur par défaut est"false"
.Normalement, avant qu'une activité ne soit temporairement arrêtée pour économiser des ressources, sa méthode
onSaveInstanceState()
est appelée. Cette méthode stocke l'état actuel de l'activité dans un objetBundle
, qui est ensuite transmis àonCreate()
lorsque l'activité est redémarrée. Si cet attribut est défini sur"true"
,onSaveInstanceState()
ne peut pas toujours être appelé, etonCreate()
est transmis avecnull
à la place duBundle
, comme c'est le cas lorsque l'activité démarre pour la première fois.Le paramètre
"true"
garantit que l'activité peut redémarrer sans que l'état ne soit conservé. Par exemple, l'activité qui affiche l'écran d'accueil utilise ce paramètre pour éviter qu'elle ne soit supprimée en cas de plantage quelconque. android:supportsPictureInPicture
-
Indique si l'activité est compatible avec le mode d'affichage Picture-in-picture.
android:taskAffinity
Tâche avec laquelle l'activité a une affinité. Les activités avec la même affinité appartiennent conceptuellement à la même tâche (à la même "application" du point de vue de l'utilisateur). L'affinité d'une tâche est déterminée par l'affinité de son activité racine.
Elle détermine deux choses : la nouvelle tâche parent vers laquelle l'activité est renvoyée (voir l'attribut
allowTaskReparenting
) et la tâche qui héberge l'activité lorsqu'elle est lancée avec l'indicateurFLAG_ACTIVITY_NEW_TASK
.Par défaut, toutes les activités d'une application ont la même affinité. Vous pouvez définir cet attribut pour les regrouper différemment, et même placer les activités définies dans différentes applications au sein de la même tâche. Pour spécifier que l'activité n'a aucune affinité avec une tâche, définissez-la sur une chaîne vide.
Si cet attribut n'est pas défini, l'activité hérite de l'affinité spécifiée pour l'application. Consultez l'attribut
taskAffinity
de l'élément<application>
. Le nom de l'affinité par défaut d'une application est l'espace de noms défini dans le fichierbuild.gradle
.android:theme
- Renvoie à une ressource de style définissant un thème général pour l'activité.
Il définit automatiquement le contexte de l'activité pour l'utilisation de ce
theme
et peut également entraîner des animations de "début" avant le lancement de l'activité (pour être encore plus fidèle à l'activité réelle).Si cet attribut n'est pas spécifié, l'activité hérite du thème défini pour l'application dans son ensemble, à partir de l'attribut
theme
de l'élément<application>
. Si cet attribut n'est pas non plus spécifié, le thème système par défaut est utilisé. Pour en savoir plus, consultez la section Styles et thèmes. android:uiOptions
Options supplémentaires pour l'interface utilisateur d'une activité. Doit correspondre à l'une des valeurs suivantes.
Valeur Description "none"
Aucune option d'interface utilisateur supplémentaire. Il s'agit de l'option par défaut. "splitActionBarWhenNarrow"
Ajoute une barre en bas de l'écran pour afficher les tâches dans la barre d'application (également appelée barre d'action) lorsque l'espace horizontal de l'écran est limité (par exemple, en mode portrait sur un téléphone). Au lieu d'afficher quelques-unes des tâches qui apparaissent dans la barre d'application en haut de l'écran, celle-ci est divisée en deux sections : la partie de navigation supérieure et la barre de tâches inférieure. Vous disposerez ainsi d'un espace raisonnable non seulement pour les tâches, mais aussi pour la navigation et les éléments de titre dans la partie supérieure. Les éléments de menu ne sont pas répartis entre les deux barres. Ils apparaissent toujours ensemble. Pour en savoir plus, consultez Ajouter la barre d'application.
Cet attribut a été ajouté au niveau d'API 14.
android:windowSoftInputMode
- Interactions entre la fenêtre principale de l'activité et la fenêtre contenant le clavier virtuel à l'écran. Le paramètre de cet attribut a une incidence sur deux éléments :
- Il indique si le clavier virtuel est masqué ou visible lorsque l'activité est au centre de l'attention de l'utilisateur.
- Il indique si la taille de la fenêtre principale de l'activité doit être réduite pour faire de la place au clavier virtuel ou si son contenu doit apparaître en panoramique pour que l'élément sélectionné soit visible à l'écran lorsqu'une partie de la fenêtre est recouverte par le clavier virtuel.
Ce paramètre doit correspondre à l'une des valeurs répertoriées dans le tableau suivant, ou à une combinaison de la valeur
"state..."
et d'une valeur"adjust..."
. La spécification de plusieurs valeurs dans l'un ou l'autre des groupes (plusieurs valeurs"state..."
, par exemple) génère des résultats non définis. Les valeurs individuelles sont séparées par une barre verticale (|
), comme dans l'exemple suivant :<activity android:windowSoftInputMode="stateVisible|adjustResize" ... >
Les valeurs définies ici (autres que
"stateUnspecified"
et"adjustUnspecified"
) remplacent les valeurs définies dans le thème.Valeur Description "stateUnspecified"
L'état du clavier virtuel (masqué ou visible) n'est pas spécifié. Le système choisira un état approprié ou se basera sur le paramètre du thème. Ce paramètre est le comportement par défaut du clavier virtuel.
"stateUnchanged"
Le clavier virtuel est conservé dans son état précédent, qu'il soit visible ou masqué, lorsque l'activité apparaît au premier plan. "stateHidden"
Le clavier virtuel est masqué lorsque l'utilisateur choisit l'activité, c'est-à-dire lorsqu'il y accède explicitement au lieu d'y retourner après avoir quitté une autre activité. "stateAlwaysHidden"
Le clavier virtuel est toujours masqué lorsque la fenêtre principale de l'activité est sélectionnée. "stateVisible"
Le clavier virtuel est visible lorsque l'utilisateur choisit l'activité, c'est-à-dire lorsqu'il y accède de manière explicite au lieu d'y retourner après avoir quitté une autre activité. "stateAlwaysVisible"
Le clavier virtuel est visible lorsque la fenêtre est sélectionnée. "adjustUnspecified"
Il n'est pas précisé si la fenêtre principale de l'activité doit être redimensionnée pour laisser de la place au clavier virtuel ou si son contenu doit apparaître en panoramique pour que l'élément sélectionné soit visible à l'écran. Le système sélectionne automatiquement l'un de ces modes selon que le contenu de la fenêtre comporte des vues de mise en page qui peuvent faire défiler leur contenu. Dans ce cas, la fenêtre est redimensionnée selon l'hypothèse que le défilement peut rendre tout contenu de la fenêtre visible dans une zone plus petite. Il s'agit du paramètre par défaut pour le comportement de la fenêtre principale.
"adjustResize"
La fenêtre principale de l'activité est toujours redimensionnée pour faire de la place au clavier virtuel à l'écran. "adjustPan"
La fenêtre principale de l'activité n'est pas redimensionnée pour faire de la place au clavier virtuel. À la place, le contenu de la fenêtre est automatiquement affiché en panoramique de sorte que la sélection active ne soit jamais masquée par le clavier et que les utilisateurs puissent toujours voir ce qu'ils saisissent. Ce comportement n'est généralement pas aussi souhaitable que le redimensionnement, car l'utilisateur peut avoir à fermer le clavier virtuel pour accéder à des parties masquées de la fenêtre et interagir avec elles. Cet attribut a été introduit dans le niveau d'API 3.
- Première apparition :
- Niveau d'API 1 pour tous les attributs, à l'exception de
noHistory
etwindowSoftInputMode
, qui ont été ajoutés au niveau d'API 3 - Voir aussi :
<application>
<activity-alias>
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/08/22 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/08/22 (UTC)."],[],[]]