<attività>

sintassi:
<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>
contenuto in:
<application>
può contenere:
<intent-filter>
<meta-data>
<layout>
description:
Dichiara un'attività (una sottoclasse Activity) che implementa parte dell'interfaccia utente visiva dell'applicazione. Tutte le attività deve essere rappresentato da <activity> nel file manifest. Gli elementi che non sono stati dichiarati non vengono visualizzati. dal sistema e non vengono mai eseguiti.
attributi:
android:allowEmbedded

Indica che l'attività può essere avviata come elemento secondario incorporato di un altro attività, soprattutto nel caso in cui il bambino viva in un container, come Display di proprietà di un'altra attività. Ad esempio, le attività utilizzate per le notifiche personalizzate di Wear lo dichiarano così Wear può visualizzare l'attività nel proprio stream di contesto, che risiede in un altro processo.

Il valore predefinito di questo attributo è false.

android:allowTaskReparenting
Se l'attività può passare dall'attività che l'ha avviata a l'attività a cui ha un'affinità quando l'attività viene successivamente in primo piano. È "true" se può muoversi e "false" se può rimane con l'attività in cui è iniziato.

Se questo attributo non è impostato, il valore impostato dalla allowTaskReparenting attributo dell'elemento <application> si applica all'attività. Il valore predefinito è "false".

Solitamente, un'attività che viene avviata è associata all'attività dall'attività che lo ha avviato e vi rimane per tutta la sua durata. Puoi utilizzare questo attributo per forzarne l'associazione con l'attività principale ha un'affinità con il momento in cui l'attività corrente non viene più visualizzata. Generalmente, viene utilizzato per spostare le attività di un'applicazione all'attività principale associata all'applicazione.

Ad esempio, se un messaggio email contiene un link a una pagina web, facendo clic il link visualizza un'attività che può visualizzare la pagina. Quell'attività è definito dall'applicazione del browser, ma viene avviato come parte dell'email dell'attività. Se viene assegnata di nuovo all'attività del browser, viene mostrata quando browser successivo viene in primo piano ed è assente quando l'attività email di nuovo in avanti.

L'affinità di un'attività è definita dal Attributo taskAffinity. L'affinità di un'attività è determinata dalla lettura dell'affinità della sua attività principale. Pertanto, per definizione, un'attività principale è sempre in un'attività con la stessa affinità. Poiché le attività con "singleTask" o "singleInstance" modalità di avvio possono essere solo alla base di un'attività, La riassegnazione dei genitori è limitata ai seguenti criteri: "standard" e "singleTop" diverse. (vedi anche launchMode .

android:alwaysRetainTaskState
Se lo stato dell'attività in cui si svolge l'attività è sempre gestite dal sistema. "true" se lo è, e "false" se il sistema può ripristinare l'attività iniziale in determinate situazioni. Il valore predefinito è "false". Questo è significativo solo per l'attività principale di un'attività. Viene ignorato per tutte le altre attività.

Normalmente, il sistema cancella un'attività e rimuove tutte le attività dall'elenco filtri. sopra l'attività principale, in determinate situazioni, quando l'utente riseleziona che dall'attività dalla schermata Home. In genere, ciò avviene se l'utente non ha visitato il sito. l'attività per un determinato periodo di tempo, ad esempio 30 minuti.

Tuttavia, quando questo attributo è "true", gli utenti ritornano sempre all'attività nel suo ultimo stato, indipendentemente da come ci arriva. Questo è utile in un'applicazione come un browser web in cui molto stato, ad esempio più schede aperte, che gli utenti non vogliono perdere.

android:autoRemoveFromRecents
Se le attività avviate dall'attività con questo attributo rimangono nella Schermata Recenti fino all'ultima attività nel viene completata l'attività. Se true, l'attività è rimossi automaticamente dalla schermata Recenti. Questa operazione sostituisce l'utilizzo da parte del chiamante FLAG_ACTIVITY_RETAIN_IN_RECENTS. Deve essere un valore booleano, "true" o "false".
android:banner
Una risorsa estraibile fornendo un banner grafico esteso per l'elemento associato. Da utilizzare con <activity> per fornire un banner predefinito per un'attività specifica o con il tag <application> per fornire un banner per tutte le attività dell'applicazione.

Il sistema utilizza il banner per rappresentare un'app in schermata Home di Android TV. Dal momento che il banner viene visualizzato solo nella schermata Home, viene specificato solo dalle applicazioni con un'attività che gestisce Intenzione CATEGORY_LEANBACK_LAUNCHER.

Questo attributo è impostato come riferimento a una risorsa drawable che contiene dell'immagine, ad esempio "@drawable/banner". Non esiste un banner predefinito.

Per ulteriori informazioni, vedi Fornisci un banner della schermata Home nella sezione Inizia a utilizzare le app TV.

android:canDisplayOnRemoteDevices

Indica se l'attività può essere visualizzata su un dispositivo remoto che potrebbe non essere in esecuzione Android. Deve essere un valore booleano, "true" o "false".

Il valore predefinito di questo attributo è "true".

android:clearTaskOnLaunch
Se tutte le attività vengono rimosse dall'attività, ad eccezione di l'attività principale, quando viene riavviata dalla schermata Home. "true" se l'attività viene sempre ridotta all'attività principale e "false" in caso contrario. Il valore predefinito è "false". Questo attributo è significativa solo per le attività che avviano una nuova attività, l'attività principale. Viene ignorato per tutte le altre attività nell'attività.

Se il valore è "true", ogni volta che gli utenti avviano l'attività, vengono portate alla sua attività principale, indipendentemente dall'ultima attività svolta l'attività e, indipendentemente dal fatto che abbiano usato il pulsante Indietro o il pulsante Home abbandonarla. Se il valore è "false", è possibile cancellare le attività in in alcune situazioni, ma non sempre. Per ulteriori informazioni, consulta Attributo alwaysRetainTaskState.

Supponiamo che l'utente avvii l'attività P dalla schermata Home. e da qui va all'attività D. L'utente tocca Home e poi torna all'attività P. Normalmente l'utente vede l'attività Q, poiché è questo che che ha svolto l'ultima volta nell'attività di P. Tuttavia, se P imposta questo flag su "true", delle attività associate, in questo caso Q, vengono rimosse quando l'utente avvia l'attività P dalla schermata Home. Di conseguenza, l'utente vede solo la lettera P quando torna all'attività.

Se questo attributo e allowTaskReparenting sono entrambi "true", tutte le attività che è possibile assegnare nuovamente vengono spostate l'attività con cui condividono l'affinità. Le attività rimanenti vengono eliminate.

Questo attributo viene ignorato se non è impostato FLAG_ACTIVITY_RESET_TASK_IF_NEEDED.

android:colorMode

Specifica la modalità colore dell'attività. Se specificato, può essere hdr o wideColorGamut.

Se hdr, richiede che l'attività venga visualizzata in un intervallo dinamico alto se è supportato dal dispositivo mobile.

Se wideColorGamut, richiede che l'attività venga visualizzata in modalità gamma di colori ampia sui dispositivi compatibili. In modalità gamma di colori ampia, il rendering di una finestra può essere eseguito al di fuori Gamma SRGB a mostrare colori più vivaci. Se il dispositivo non supporta il rendering ad ampia gamma di colori, non ha alcun effetto. Per ulteriori informazioni sul rendering in modalità colore largo, consulta Migliora la grafica con contenuti a colori ampi.

android:configChanges
Elenca le modifiche alla configurazione che l'attività gestisce autonomamente. Quando una configurazione una modifica avviene in fase di runtime, l'attività viene chiusa e riavviata per impostazione predefinita, ma dichiarando la configurazione con questo attributo impedisce il riavvio dell'attività. Invece, rimane in esecuzione e viene richiamato il metodo onConfigurationChanged().

Nota: utilizza questo attributo solo in casi speciali per migliorare l'applicazione per migliorare le prestazioni e la reattività. Per saperne di più, vedi Gestire le modifiche alla configurazione.

Le seguenti stringhe sono valori validi per questo attributo. Più valori sono separate da |, ad esempio "locale|navigation|orientation".

Valore Descrizione
"colorMode"

Le funzionalità della modalità colore dello schermo (gamma di colori o gamma dinamica) sono cambiate.

Nota:la modalità colore richiesta dall'attività con l'attributo colorMode o in fase di runtime è diversa dalla funzionalità per le diverse modalità colore. Un'attività che modifica la modalità colore in uso non comporta una modifica della configurazione, poiché le funzionalità dei colori del display non sono cambiate.

"density"

Una modifica della densità del display, ad esempio quando l'utente specifica un con una scala display diversa o un display diverso ora è attivo.

Aggiunto nel livello API 24.

"fontScale" Una modifica al fattore di ridimensionamento del carattere, ad esempio quando l'utente seleziona una nuova dimensione globale del carattere.
"fontWeightAdjustment" L'aumento dello spessore dei caratteri è cambiato.
"grammaticalGender" Il genere grammaticale della lingua è cambiato. Consulta GrammaticalInflectionManager.

Aggiunta nel livello API 34.

"keyboard" Una modifica al tipo di tastiera, ad esempio quando l'utente collegato a una tastiera esterna.
"keyboardHidden" Una modifica all'accessibilità della tastiera, ad esempio quando l'utente visualizza la tastiera hardware.
"layoutDirection"

Una modifica alla direzione del layout, ad esempio da da sinistra a destra (LTR) a destra verso sinistra (RTL).

Aggiunto nel livello API 17.

"locale" Una modifica alle impostazioni internazionali, ad esempio quando l'utente ne seleziona una nuova lingua in cui viene visualizzato il testo.
"mcc" Una modifica al codice paese IMSI per dispositivi mobili (Centro clienti) quando e una SIM rilevata che aggiorna il Centro clienti.
"mnc" Una modifica al codice di rete mobile IMSI (MNC) quando Viene rilevata una SIM che aggiorna il MNC.
"navigation" TA consente di passare al tipo di navigazione (trackball o D-pad). Solitamente non accade.
"orientation"

Un cambiamento dell'orientamento dello schermo, ad esempio quando l'utente ruota il dispositivo.

Nota: se la tua applicazione target Per Android 3.2 (livello API 13) o versioni successive, dichiara inoltre Configurazioni "screenLayout" e "screenSize", a causa del layout dello schermo e le dimensioni dello schermo possono cambiare il dispositivo passa dall'orientamento verticale a quello orizzontale.

"screenLayout" Una modifica del layout dello schermo, ad esempio quando diventa attivo un display diverso.
"screenSize"

Una modifica alle dimensioni dello schermo attualmente disponibili.

Rappresenta una modifica delle dimensioni attualmente disponibili rispetto alla dimensione proporzioni correnti, quindi cambiano quando l'utente passa dalla modalità orizzontale a un'altra e verticale.

Aggiunto nel livello API 13.

"smallestScreenSize"

Una modifica alle dimensioni fisiche dello schermo.

Questo rappresenta una modifica delle dimensioni a prescindere dall'orientamento, quindi viene cambia quando cambiano le dimensioni effettive dello schermo, ad esempio passando a su un display esterno. Una modifica a questa configurazione corrisponde a una modifica nel smallestWidth configurazione.

Aggiunto nel livello API 13.

"touchscreen" Una modifica al touchscreen. Solitamente non accade.
"uiMode" Una modifica alla modalità dell'interfaccia utente, ad esempio quando l'utente inserisce dispositivo a una scrivania o un dock per auto, oppure la modalità notturna cambia. Per maggiori informazioni informazioni sulle diverse modalità della UI, vedi UiModeManager.

Aggiunta nel livello API 8.

Tutte queste modifiche alla configurazione possono influire sui valori delle risorse visualizzati un'applicazione. Pertanto, quando onConfigurationChanged() viene chiamato, di solito è necessario Recuperare tutte le risorse, inclusi i layout e gli elementi disegnabili, per gestire correttamente la modifica.

Nota:per gestire le modifiche alla configurazione relative a multi-finestra, utilizza sia "screenLayout" sia "smallestScreenSize". La modalità multi-finestra è supportata in Android 7.0 (livello API 24) o versioni successive.

android:directBootAware

Se l'attività è consapevole di Direct Boot, ovvero se può essere eseguito prima che l'utente sblocchi il dispositivo.

Nota: durante Avvio diretto, un'attività in l'applicazione può accedere soltanto ai dati archiviati spazio di archiviazione protetto dal dispositivo.

Il valore predefinito è "false".

android:documentLaunchMode
Specifica come viene aggiunta a un'attività una nuova istanza di un'attività ogni volta che viene avviata. Questo attributo consente all'utente di avere più documenti della stessa applicazione vengono visualizzate nella schermata Recenti.

Questo attributo ha quattro valori, che producono i seguenti effetti quando l'utente apre un documento con l'applicazione:

Valore Descrizione
"intoExisting" Il sistema cerca un'attività il cui intent di base è ComponentName e l'URI dei dati corrispondano a quelli dell'intento di lancio. Se il sistema trova un'attività di questo tipo, cancella la l'attività e si riavvia, con l'attività principale che riceve una chiamata a onNewIntent(android.content.Intent). Se il sistema non trova l'attività di questo tipo, ne crea una nuova.
"always" L'attività crea una nuova attività per il documento, anche se il documento è già aperto. Equivale a impostare FLAG_ACTIVITY_NEW_DOCUMENT e FLAG_ACTIVITY_MULTIPLE_TASK flag.
"none" L'attività non crea una nuova attività per l'attività stessa. Si tratta del valore predefinito, crea una nuova attività solo quando è impostato FLAG_ACTIVITY_NEW_TASK. La schermata Recenti tratta l'attività come avviene per impostazione predefinita: mostra una singola attività per all'app, che riprende l'attività dall'ultima chiamata dell'utente.
"never" L'attività non viene avviata in un nuovo documento, anche se l'intent contiene FLAG_ACTIVITY_NEW_DOCUMENT. Questa impostazione sostituisce il comportamento di FLAG_ACTIVITY_NEW_DOCUMENT e FLAG_ACTIVITY_MULTIPLE_TASK flag, se uno di questi è impostato nel e la schermata Recenti mostra una singola attività per l'app, che riprende a qualsiasi attività chiamata per l'ultima volta dall'utente.

Nota: per i valori diversi da "none" e "never", il valore l'attività è definita con launchMode="standard". Se questo attributo non è specificato, È in uso documentLaunchMode="none".

android:enabled
Indica se il sistema può creare un'istanza dell'attività. È "true" se può esserlo e "false" in caso contrario. Il valore predefinito è "true".

<application> ha il proprio enabled che si applica a tutti i componenti dell'applicazione, incluse le attività. La <application> e <activity> devono essere entrambi "true", in quanto sono per impostazione predefinita, affinché il sistema sia in grado di creare un'istanza dell'attività. Se è "false", non è possibile creare un'istanza.

android:enableOnBackInvokedCallback
Questo flag ti consente di attivare le animazioni di sistema predittive a livello di attività. Questo comportamento rende più gestibile la migrazione di app multiattività di grandi dimensioni ai gesti Indietro predittivi.

L'impostazione di android:enableOnBackInvokedCallback=false disattiva la funzionalità Indietro predittiva a livello di attività o di app, a seconda di dove imposti il tag. e indica al sistema di ignorare le chiamate all'API della piattaforma OnBackInvokedCallback.

android:excludeFromRecents

Indica se l'attività avviata da questa attività è esclusa dalla Schermata Recenti. Vale a dire, quando questa attività è l'attività principale di una nuova questo attributo determina se l'attività viene visualizzata nell'elenco delle app recenti. È "true" se l'attività è esclusa dall'elenco; "false" se è incluso. Il valore predefinito è "false".

android:exported

Se l'attività può essere avviata da componenti di altri applicazioni:

  • Se "true", l'attività è accessibile a qualsiasi app ed è avviabile dalla sua esatta nome della classe.
  • Se "false", l'attività può essere avviata solo dai componenti del la stessa applicazione, applicazioni con lo stesso ID utente o componenti di sistema con privilegi. Questo è il valore predefinito quando non sono presenti filtri per intent.

Se un'attività nella tua app include filtri per intent, imposta questo elemento su "true" per consentire ad altre app di avviarla. Ad esempio, se l'attività è l'attività principale dell'app e include category android.intent.category.LAUNCHER.

Se questo elemento è impostato su "false" e un'app prova ad avviare l'attività, il sistema genera un ActivityNotFoundException.

Questo attributo non è l'unico modo per limitare l'esposizione di un'attività ad altri diverse applicazioni. Le autorizzazioni vengono utilizzate anche per limitare le entità esterne che può richiamare l'attività. Consulta le permission .

android:finishOnTaskLaunch
Se un'istanza esistente dell'attività viene arrestata, ad eccezione dell'attività principale, quando l'utente riavvia la propria attività scegliendola nella schermata Home. È "true" se il servizio viene arrestato e "false" in caso contrario. Il valore predefinito è "false".

Se questo attributo e allowTaskReparenting sono entrambi "true", questo attributo prevale sull'altro. L'affinità viene ignorata. L'attività non viene assegnata come nuova genitori, ma viene distrutta.

Questo attributo viene ignorato se non è impostato FLAG_ACTIVITY_RESET_TASK_IF_NEEDED.

android:hardwareAccelerated
Se il rendering con accelerazione hardware è abilitato per questa azione attività. "true" se abilitata e "false" se . Il valore predefinito è "false".

Su Android 3.0 e versioni successive, viene utilizzato un renderer OpenGL con accelerazione hardware disponibili per le applicazioni al fine di migliorare le prestazioni di molte grafiche 2D comuni operazioni. Quando è attivato il renderer con accelerazione hardware, la maggior parte delle operazioni in Canvas, Paint, Xfermode, ColorFilter, Shader e Fotocamera sono più rapidi.

Ciò si traduce in animazioni più fluide, scorrimento più fluido e la reattività generale, anche per le applicazioni che non utilizzano alle librerie OpenGL del framework. A causa dell'aumento delle risorse necessarie per se attivi l'accelerazione hardware, l'app consuma più RAM.

Non tutte le operazioni OpenGL 2D vengono velocizzate. Se attivi il renderer con accelerazione hardware, verifica se la tua applicazione può utilizzare il renderer senza errori.

android:icon

Un'icona che rappresenta l'attività. L'icona viene mostrata agli utenti quando è necessaria una rappresentazione dell'attività sullo schermo. Ad esempio, le icone per le attività che avviano attività vengono visualizzate nella finestra Avvio app. L'icona è spesso accompagnata da un'etichetta: per informazioni sull'etichetta, vedi l'attributo android:label.

Questo attributo è impostato come riferimento a una risorsa drawable che contiene la definizione dell'immagine. Se non è impostata, viene visualizzata l'icona specificata per l'applicazione viene usato nel suo insieme. Per ulteriori informazioni, consulta <application> attributo icon dell'elemento.

L'icona dell'attività, impostata qui o dal <application> è anche l'icona predefinita per tutti i filtri per intent dell'attività. Per ulteriori informazioni, consulta Di <intent-filter> elemento Attributo icon.

android:immersive
Configura l'impostazione della modalità immersiva per l'attività corrente. Se è "true", il membro ActivityInfo.flags ha sempre il suo FLAG_IMMERSIVE bit impostato, anche se la modalità immersiva cambia in fase di runtime utilizzando il metodo setImmersive().
android:label

Un'etichetta leggibile per l'attività. L'etichetta viene visualizzata sullo schermo quando l'attività viene presentata all'utente. Spesso viene mostrata insieme con l'icona dell'attività. Se questo attributo non è impostato, l'etichetta impostata per l'applicazione nel suo complesso è al suo posto. guarda gli elementi <application> Attributo label.

L'etichetta dell'attività, impostata qui o dal <application> è anche l'elemento l'etichetta predefinita per tutti i filtri per intent dell'attività. Per ulteriori informazioni, consulta Di <intent-filter> elemento Attributo label.

L'etichetta è impostata come riferimento a una risorsa stringa, in modo che può essere localizzata come altre stringhe nell'interfaccia utente. Tuttavia, per comodità durante lo sviluppo dell'applicazione, può anche essere impostato come stringa non elaborata.

android:launchMode

Un'istruzione su come viene avviata l'attività. Esistono cinque modalità: che funzionano in combinazione con i flag dell'attività (costanti FLAG_ACTIVITY_*) in Intent oggetto per determinare cosa succede l'attività viene richiamata per gestire un intent:

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

La modalità predefinita è "standard".

Come mostrato nella tabella seguente, le modalità si suddividono in due gruppi principali, con "standard" e "singleTop" attività da un lato e "singleTask", "singleInstance" e "singleInstancePerTask" attività sull'altro. Un'attività con Modalità di avvio "standard" o "singleTop" e può essere creata più volte.

Le istanze possono appartenere a qualsiasi attività e possono essere visualizzate in qualsiasi punto dell'attività. Di solito, avviato l'attività che chiamava startActivity(), a meno che l'oggetto Intent non contenga un FLAG_ACTIVITY_NEW_TASK istruzione, nel qual caso viene scelta un'attività diversa. Per ulteriori informazioni, consulta taskAffinity.

Al contrario, "singleTask", "singleInstance" e Le attività di "singleInstancePerTask" hanno comportamenti diversi. "singleInstancePerTask" è sempre all'inizio dell'attività dell'attività. Inoltre, il dispositivo può contenere una sola istanza Attività di "singleInstance" alla volta, mentre È possibile creare un'istanza dell'attività "singleInstancePerTask più volte in diverse attività quando FLAG_ACTIVITY_MULTIPLE_TASK o FLAG_ACTIVITY_NEW_DOCUMENT è impostata.

Un'attività con la modalità di avvio "singleTask" combina i seguenti elementi: comportamenti di "singleInstance" e "singleInstancePerTask": è possibile creare un'istanza per più attività volte e può trovarsi ovunque in un'attività della stessa taskAffinity. Ma il dispositivo può svolgere una sola attività per localizzare Attività di "singleTask" nella directory principale dell'attività.

Le modalità "standard" e "singleTop" sono diverse l'una dall'altra in un solo aspetto: ogni volta che c'è una nuova intenzione per un "standard" dell'attività, viene creata una nuova istanza della classe per rispondere a questo intento. Ogni istanza gestisce un singolo intent. Allo stesso modo, anche una nuova istanza di un'attività "singleTop" può essere create per gestire un nuovo intento.

Tuttavia, se l'attività di destinazione ha già un dell'attività in cima al suo stack, quell'istanza riceve il nuovo intent, Chiamata onNewIntent(). Non viene creata una nuova istanza. In caso contrario, se si tratta di un'istanza L'attività "singleTop" si trova nell'attività di destinazione, ma non nella parte superiore di nello stack oppure se si trova in cima allo stack, ma non nell'attività di destinazione, viene ed eseguirne il push sullo stack.

Analogamente, se l'utente naviga fino a un'attività sullo stack attuale, il comportamento è determinato modalità di avvio dell'attività genitore. Se l'attività principale ha la modalità di avvio singleTop (o l'intent up contiene FLAG_ACTIVITY_CLEAR_TOP), l'attività principale viene in cima allo stack e il suo stato viene mantenuto.

L'intento di navigazione viene ricevuto dall'attività principale di onNewIntent() . Se per l'attività genitore è presente la modalità di avvio standard e L'intent up non contiene FLAG_ACTIVITY_CLEAR_TOP, l'attività corrente e i relativi gli elementi principali vengono entrambi saltati dallo stack e viene creata una nuova istanza dell'attività principale per ricevere l'intento di navigazione.

Anche la modalità "singleInstance" è diversa da quella di "singleTask" e "singleInstancePerTask" in un solo aspetto: un'attività con il Modalità lancio "singleTask" o "singleInstancePerTask" consente ad altre attività, necessariamente "standard" "singleTop" attività, far parte del suo compito.

R L'attività di "singleInstance", invece, non consente nessun'altra attività. Deve essere l'unica attività dell'attività. Se inizia un'altra attività, questa è assegnata a un'altra attività, se FLAG_ACTIVITY_NEW_TASK fosse nell'intento.

Casi d'uso Modalità di avvio Più istanze? Commenti
Lanci normali per la maggior parte delle attività "standard" Predefinita. Il sistema crea sempre una nuova istanza dell'attività nel dell'attività target e instrada l'intent a quest'ultima.
"singleTop" Condizionalmente Se un'istanza dell'attività esiste già nella parte superiore dell'attività di destinazione, il sistema instrada l'intent a quell'istanza tramite una chiamata al suo metodo onNewIntent(), anziché creare una una nuova istanza dell'attività.
Lanci specializzati
(non consigliato per un uso generico)
"singleTask" Condizionalmente Il sistema crea l'attività alla base di una nuova attività o individua l'attività in un'attività esistente con la stessa affinità. Se un'istanza dell'attività esiste già ed è alla radice dell'attività, il sistema instrada l'intent all'istanza esistente tramite una chiamata al suo metodo onNewIntent(), anziché creare una uno nuovo.
"singleInstance" No Uguale a "singleTask", tranne per il fatto che il sistema non avvia alcun e altre attività nell'attività che contiene l'istanza. L'attività è sempre l'unico e unico membro della sua attività.
"singleInstancePerTask" Condizionalmente L'attività può essere eseguita solo come attività principale dell'attività, la prima all'attività che ha creato l'attività. Di conseguenza, esiste una sola istanza questa attività in un'attività. Tuttavia, è possibile creare un'istanza dell'attività più volte in attività diverse.

Come mostrato nella tabella precedente, "standard" è la modalità predefinita ed è appropriati per la maggior parte dei tipi di attività. "singleTop" è anche un utile e comune per molti tipi di attività. Le altre modalità, "singleTask", "singleInstance" e "singleInstancePerTask" sono non appropriato per la maggior parte delle applicazioni. Generano un modello di interazione probabilmente poco familiare ed è molto diverso dalla maggior parte delle altre applicazioni.

Indipendentemente dalla modalità di avvio scelta, assicurati di testare l'usabilità dell'attività durante l'avvio e quando torni altre attività usando il pulsante Indietro.

Per ulteriori informazioni sulle modalità di lancio e sulla loro interazione con Intent i flag, consulta Attività e lo stack precedente.

android:lockTaskMode
Determina in che modo il sistema presenta questa attività quando il dispositivo è in esecuzione modalità di blocco attività.

Android può eseguire le attività in un modo immersivo, simile a un kiosk, chiamato modalità di blocco attività. Quando il sistema funziona in modalità di blocco attività, gli utenti dei dispositivi in genere non possono vedere le notifiche, accedere alle app non incluse nella lista consentita o tornare alla schermata Home, a meno che l'app Home non sia inclusa nella lista consentita.

Solo le app Inserimento nella lista consentita da parte di un controller dei criteri dei dispositivi (DPC) può essere eseguito quando il sistema è in modalità di blocco attività. Sistema e app privilegiate, ma possono essere eseguite in modalità di blocco dell'attività senza essere inserite nella lista consentita.

Il valore può essere uno qualsiasi dei seguenti Valori stringa R.attr.lockTaskMode:

Valore Descrizione
"normal" Valore predefinito. Questo è il valore predefinito. Le attività non vengono avviate in modalità di blocco, ma possono essere inserito lì chiamando startLockTask()
"never"

Le attività non vengono avviate in modalità lockTask e l'utente del dispositivo non può bloccarle dal Schermata Recenti.

Nota:questa modalità è disponibile solo per le applicazioni di sistema e con privilegi. Le app senza privilegi con questo valore vengono trattate come normal.

"if_whitelisted" Se il DPC autorizza questo pacchetto utilizzando DevicePolicyManager.setLockTaskPackages(), questa modalità è identica a always, ma l'attività deve chiamare stopLockTask() prima di essere può essere completata se è l'ultima attività bloccata. Se il DPC non autorizza questo pacchetto, è identica a normal.
"always"

Le attività rooted in questa attività vengono sempre avviate in modalità di blocco attività. Se il sistema è già in di bloccare la modalità attività quando questa attività viene avviata, la nuova attività viene avviata sopra l'attività corrente. Le attività avviate in questa modalità possono uscire dalla modalità di blocco delle attività chiamando finish()

Nota:questa modalità è disponibile solo per le applicazioni di sistema e con privilegi. Le app senza privilegi con questo valore vengono trattate come normal.

Questo attributo è stato introdotto nel livello API 23.

android:maxRecents
Il numero massimo di attività radicate in questa attività in Schermata Recenti. Quando viene raggiunto questo numero di voci, il sistema rimuove le voci meno recenti dell'istanza utilizzata dalla schermata Recenti. I valori validi sono i numeri interi compresi tra 1 e 50 o tra 1 e 25 sui dispositivi con memoria ridotta. Lo zero non è valido. Il valore predefinito è 16.
android:maxAspectRatio

Le proporzioni massime supportate dall'attività. Se l'app viene eseguita su un dispositivo con proporzioni più ampie, il sistema applica automaticamente il letterbox all'app, lasciando parti dello schermo inutilizzate in modo che l'app possa essere eseguita nelle proporzioni massime specificate.

Le proporzioni massime sono espresse come forma decimale del quoziente del valore più lungo divisa per la dimensione più corta. Ad esempio, se le proporzioni massime sono 7:3, imposta il valore di questo attributo su 2,33.

Sui dispositivi non indossabili, il valore di questo attributo deve essere almeno 1,33. Sui dispositivi indossabili, deve essere 1.0 o superiore. In caso contrario, il sistema ignora il valore impostato.

Nota: questo attributo viene ignorato se l'attività ha resizeableActivity impostato su true, perché indica la tua attività supporta qualsiasi dimensione.

Per ulteriori informazioni su questo attributo, consulta Dichiara le proporzioni massime.

android:multiprocess
Se un'istanza dell'attività può essere avviata nel processo del componente che l'ha avviata. È "true" se può esserlo e "false" in caso contrario. Il valore predefinito è "false".

Normalmente, una nuova istanza di un'attività viene avviata nel processo di dall'applicazione che l'ha definita, in modo che tutte le istanze dell'attività vengano eseguite nella stessa e il processo di sviluppo. Tuttavia, se questo flag viene impostato su "true", le istanze del l'attività può essere eseguita in più processi, consentendo al sistema di creare istanze ovunque vengano utilizzati, le autorizzazioni fornite lo consentono, qualcosa che è quasi non necessari né desiderabili.

android:name
Il nome della classe che implementa l'attività, una sottoclasse Activity. Il valore dell'attributo è di solito un modello completo nome della classe, ad esempio "com.example.project.ExtracurricularActivity". Tuttavia, come forma breve, se il primo carattere del nome è un punto, come ".ExtracurricularActivity", viene aggiunto al spazio dei nomi specificato nel build.gradle file.

Una volta pubblicata l'applicazione, non modificare questo nome, a meno che non imposti android:exported="false". Non esiste un valore predefinito. È necessario specificare il nome.

android:noHistory
Se l'attività viene rimossa dallo stack di attività e terminato, chiamando il relativo finish() , quando l'utente esce dalla pagina e questo non visibile sullo schermo. Se l'operazione è terminata, è "true". "false" in caso contrario. Il valore predefinito è "false".

Il valore "true" indica che l'attività non lascia un traccia storica. Non rimane nello stack di attività per l'attività, in modo che l'utente non possa accedervi. In questo caso, onActivityResult() non viene mai chiamato se avvia un'altra attività per un risultato di questa attività.

Questo attributo è stato introdotto nel livello API 3.

android:parentActivityName
Il nome del corso del principale logico dell'attività. Il nome qui deve corrispondere al corso nome assegnato all'elemento <activity> corrispondente android:name.

Il sistema legge questo attributo per determinare quale attività iniziare quando l'utente tocca il pulsante Su nella barra delle azioni. Il sistema può utilizzare queste informazioni anche sintetizza uno stack di attività posteriore con TaskStackBuilder.

Per supportare i livelli API da 4 a 16, puoi anche dichiarare l'attività principale con un elemento <meta-data> che specifica un valore per "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>

Per scoprire di più su come dichiarare l'attività dei genitori per supportare la navigazione verso l'alto, leggi Fornire Navigazione.

Questo attributo è stato introdotto nel livello API 16.

android:persistableMode

Definisce come un'istanza di un'attività viene conservata all'interno di un l'attività sui vari dispositivi.

Se l'attività principale di un'attività imposta il valore di questo attributo su persistRootOnly, viene mantenuta solo l'attività principale. In caso contrario, le attività più in alto back stack vengono esaminati, una qualsiasi di queste attività che impostano il valore di questo attributo su persistAcrossReboots vengono conservati.

Se utilizzi questo attributo, devi impostarne il valore su uno dei seguenti:

Valore Descrizione
persistRootOnly

Valore predefinito. Al riavvio del sistema, l'attività di attività viene ma viene utilizzato solo l'intent di avvio dell'attività principale.

Quando l'intent di avvio dell'app carica l'attività principale dell'app, la macro l'attività non riceve un oggetto PersistableBundle. Pertanto, non utilizzare onSaveInstanceState() per preservare lo stato dell'attività principale della tua app su un dispositivo riavvia.

Nota: questo valore dell'attributo influisce sulla risposta dell'app solo se è impostato nell'attività principale dell'app.

persistAcrossReboots

Lo stato di questa attività viene conservato, insieme allo stato di ogni attività più in alto indietro stack che ha il proprio attributo persistableMode impostato su persistAcrossReboots. Se un'attività non presenta un attributo persistableMode impostato su persistAcrossReboots o se viene avviato utilizzando Intent.FLAG_ACTIVITY_NEW_DOCUMENT flag, l'attività, insieme a tutte le attività più in alto stack, non vengono conservati.

Quando un intent carica un'attività di cui persistableMode sia impostato su persistAcrossReboots nella tua app, riceve un oggetto PersistableBundle nel suo onCreate(). Pertanto, puoi utilizzare onSaveInstanceState() per preservare lo stato di un'attività al riavvio di un dispositivo finché L'attributo persistableMode è impostato su persistAcrossReboots.

Nota: questo valore dell'attributo influisce sulla risposta dell'app anche se è impostato su un'attività diversa da quella principale dell'app attività.

persistNever

Lo stato dell'attività non viene conservato.

Nota: questo valore dell'attributo influisce sulla risposta dell'app solo se è impostato nell'attività principale dell'app.

Questo attributo è stato introdotto nel livello API 21.

android:permission
Il nome di un'autorizzazione di cui i clienti devono disporre per avviare l'attività o far sì che risponda a un'intenzione. Se un chiamante di startActivity() o startActivityForResult() non riceve l'autorizzazione specificata, il suo intent non viene pubblicato nell'attività.

Se questo attributo non è impostato, l'autorizzazione impostata dal <application> dell'elemento permission si applica all'attività. Se non è impostato nessuno dei due attributi, l'attività non è protetta da un autorizzazione.

Per ulteriori informazioni sulle autorizzazioni, consulta Autorizzazioni della panoramica del file manifest dell'app Suggerimenti per la sicurezza.

android:process

Il nome del processo in cui viene eseguita l'attività. Di solito, tutti i componenti di una di un'applicazione in un nome di processo predefinito creato per l'applicazione e non devono utilizzare questo attributo. Ma se necessario, puoi ignorare il processo predefinito nome con questo attributo, che ti consente di distribuire i componenti dell'app tra più processi.

Se il nome assegnato a questo attributo inizia con i due punti (:), viene privato dell'applicazione, viene creato quando è necessario dell'attività durante questo processo.

Se il nome del processo inizia con un carattere minuscolo, l'attività viene eseguita in un processo globale con questo nome, a condizione che sia autorizzato a farlo. Ciò consente ai componenti di applicazioni diverse di condividere un processo, e l'utilizzo delle risorse.

L'elemento <application> process può impostare un nome di processo predefinito diverso per tutti i componenti.

android:relinquishTaskIdentity

Se l'attività abbandona i propri identificatori di attività a un'attività di livello superiore nel e lo stack di attività. Un'attività la cui attività principale ha questo attributo impostato su "true" sostituisce la base Intent con quello dell'attività successiva nell'attività.

Se questo attributo è impostato anche per l'attività successiva a "true", cede il valore Intent di base a qualsiasi attività che lancia nella stessa dell'attività. Questo continua per ogni attività fino a quando non viene rilevata un'attività con questo attributo impostato a "false". Il valore predefinito è "false".

Questo attributo impostato su "true" consente anche l'uso dell'attività ActivityManager.TaskDescription per cambiare etichette, colori e icone nella schermata Recenti.

android:requireContentUriPermissionFromCaller

Specifica le autorizzazioni necessarie per avviare questa attività al momento del passaggio gli URI contenuti. Il valore predefinito è none, il che significa che non sono disponibili sono necessarie le autorizzazioni. L'impostazione di questo attributo limita l'attività in base alle autorizzazioni dell'invocatore. Se l'invocatore non ha le autorizzazioni richieste, l'inizio dell'attività verrà negato tramite un SecurityException .

Tieni presente che l'applicazione funziona per gli URI dei contenuti all'interno Intent.getData(), Intent.EXTRA_STREAM, e Intent.getClipData()

Può essere un valore di stringa, utilizzando "\\;" come escape di caratteri come '\\n' o "\\uxxxx" per un carattere Unicode;

Deve essere uno dei seguenti valori costanti.

Costante Valore Descrizione
nessuno 0 Per impostazione predefinita, non sono richieste autorizzazioni specifiche.
leggere 1 Obbliga l'invoker ad avere accesso in lettura agli URI dei contenuti passati.
letturaAndWrite 4 Obbliga l'invoker ad avere accesso in lettura e in scrittura agli URI dei contenuti trasmessi.
letturaOrWrite 3 Obbliga l'invoker ad avere accesso in lettura o in scrittura agli URI dei contenuti trasmessi.
scrittura 2 Impone all'invoker di avere accesso in scrittura agli URI dei contenuti trasmessi.
android:resizeableActivity

Specifica se l'app supporta la modalità multi-finestra. Tu puoi impostare questo attributo in <activity> o <application> .

Se imposti questo attributo su "true", l'utente può avviare l'attività in schermo diviso e in formato libero. Se imposti l'attributo su "false", l'app non possono essere testati o ottimizzati per un ambiente multi-finestra. Il sistema può imposta comunque l'attività in modalità multi-finestra con la modalità di compatibilità applicata.

L'impostazione di questo attributo su "false" non garantisce che siano presenti altre app in modalità multi-finestra visibili sullo schermo, come la modalità Picture in picture su altri display. Pertanto, l'impostazione di questo flag non significa che la tua app dispone di accesso esclusivo alle risorse.

Se la tua app ha come target il livello API 24 o superiore e non specifichi un valore per questo attributo, il valore predefinito dell'attributo è "true".

Se la tua app ha come target il livello API 31 o versioni successive, questo attributo funziona in modo diverso sulle app di piccole e grandi dimensioni. schermate:

  • Schermi grandi (sw >= 600 dp): tutte le app supportano la modalità multi-finestra. L'attributo indica se un'app può essere ridimensionata, non se supporta la modalità multi-finestra. Se resizeableActivity="false", l'app viene attivata in modalità di compatibilità quando necessario per essere conformi alle dimensioni di visualizzazione.
  • Schermi piccoli (sw < 600 dp): se resizeableActivity="true" e il minimo larghezza e altezza minima dell'attività rientrano nei requisiti della modalità multi-finestra, l'app supporta la modalità multi-finestra. Se resizeableActivity="false", l'app non supportano la modalità multi-finestra indipendentemente dalla larghezza e dall'altezza minime dell'attività.

Nota: i produttori di dispositivi possono eseguire l'override del livello API 31 comportamento degli utenti.

Questo attributo è stato aggiunto nel livello API 24.

Nota: il valore dell'attività principale di un'attività viene applicato a tutti attività aggiuntive avviate nell'attività. Vale a dire, se l'attività principale è ridimensionabile un'attività, il sistema tratta tutte le altre attività come ridimensionabile. Se l'attività principale non è ridimensionabile, l'altra e le attività dell'attività non sono ridimensionabili.

android:screenOrientation

L'orientamento richiesto dell'attività.

Quando un'attività riempie l'intero schermo, l'orientamento richiesto funge da suggerimento a: cambia l'orientamento sullo schermo in modo che corrisponda al valore richiesto. Ciò può comportare diverso dall'orientamento fisico dello schermo nello spazio, richiedendo all'utente di ruotare il dispositivo per continuare a utilizzare l'app. Su Android 12 (livello API) 31) e versioni successive, i produttori possono configurare singoli dispositivi dagli schermi pieghevoli (ad esempio le dimensioni di un tablet) per ignorare questo suggerimento, ma forzare l'applicazione di un'attività in formato letterbox entro l'orientamento del dispositivo preferito dall'utente. Questo fa sì che l'orientamento dell'attività corrisponda a quello richiesto senza che l'utente debba ruotare fisicamente il dispositivo.

In modalità multi-finestra, l'orientamento richiesto non funge da suggerimento per l'impatto complessivo orientamento. Se l'attività è letterbox, il codice l'orientamento influisce sul letterbox applicato all'attività.

Il valore può essere una qualsiasi delle seguenti stringhe:

"unspecified" Il valore predefinito. Il sistema sceglie l'orientamento. Le norme usi, e quindi le scelte effettuate in contesti specifici, possono differire da un dispositivo all'altro.
"behind" Lo stesso orientamento dell'attività immediatamente sottostante in lo stack delle attività.
"landscape" Orientamento orizzontale (il display è più ampio che alto).
"portrait" Orientamento verticale (il display è più alto che largo).
"reverseLandscape" Orientamento orizzontale nella direzione opposta rispetto a quello normale. Aggiunta nel livello API 9.
"reversePortrait" Orientamento verticale nella direzione opposta rispetto al ritratto normale. Aggiunta nel livello API 9.
"sensorLandscape" Orientamento orizzontale, ma in base al dispositivo può essere orizzontale o invertito sensore. Il sensore viene utilizzato anche se l'utente ha bloccato la rotazione basata sul sensore. Aggiunta nel livello API 9.
"sensorPortrait" Orientamento verticale, ma può essere verticale o normale, in base al dispositivo sensore. Il sensore viene utilizzato anche se l'utente ha bloccato la rotazione basata sul sensore. Tuttavia, a seconda la configurazione del dispositivo, la rotazione capovolta potrebbe non essere consentita. Aggiunta nel livello API 9.
"userLandscape" Orientamento orizzontale, ma in base al dispositivo può essere orizzontale o invertito sensore e alle preferenze dell'utente. Aggiunta nel livello API 18.
"userPortrait" Orientamento verticale, ma può essere verticale o normale, in base al dispositivo sensore e alle preferenze dell'utente. Tuttavia, a seconda della configurazione del dispositivo, potrebbe non essere consentita. Aggiunta nel livello API 18.
"sensor" Il sensore di orientamento del dispositivo determina l'orientamento. L'orientamento del dipende da come l'utente tiene il dispositivo. Cambia quando l'utente ruota dispositivo. Alcuni dispositivi, tuttavia, non ruotano tutti e quattro gli orientamenti possibili per impostazione predefinita. A usa tutti e quattro gli orientamenti, usa "fullSensor". Il sensore viene utilizzato anche se l'utente la rotazione basata sul sensore è bloccata.
"fullSensor" Il sensore di orientamento del dispositivo determina l'orientamento per uno qualsiasi dei quattro orientamenti. È simile a "sensor", tranne per il fatto che consente uno qualsiasi dei quattro possibili orientamenti dello schermo indipendentemente da cosa supporta normalmente il dispositivo. Ad esempio, alcuni dispositivi in genere non prevedono la retromarcia orizzontale o verticale, ma ciò consente questi orientamenti. Aggiunta nel livello API 9.
"nosensor" L'orientamento è determinato senza riferimento a un sensore di orientamento fisico. Il sensore viene ignorato, quindi il display non ruota in base a come l'utente sposta il dispositivo.
"user" L'orientamento preferito corrente dell'utente.
"fullUser" Se l'utente ha bloccato la rotazione basata sui sensori, si comporta come user, altrimenti si comporta allo stesso modo di fullSensor e consente uno qualsiasi dei quattro possibili orientamenti dello schermo. Aggiunta nel livello API 18.
"locked" Blocca l'orientamento alla rotazione corrente, a seconda di quale sia. Aggiunta nel livello API 18.

Nota: quando dichiari uno dei valori orizzontale o verticale, è considerato un requisito fondamentale per l'orientamento in cui si svolge l'attività. Il valore che dichiari consente di applicare filtri in base a servizi come Google Play, quindi la tua applicazione viene disponibile solo per i dispositivi che supportano l'orientamento richiesto dalle attività. Per esempio, se dichiari "landscape", "reverseLandscape" o "sensorLandscape", la tua applicazione sarà disponibile soltanto per i dispositivi che supportano orientamento orizzontale.

Dichiarare inoltre esplicitamente che l'applicazione richiede l'orientamento verticale o orizzontale con <uses-feature> Elemento, ad esempio <uses-feature android:name="android.hardware.screen.portrait"/>. Questo è un comportamento di filtro forniti da Google Play e da altri servizi che la supportano e la piattaforma stessa non controlla se la tua app può essere installata quando un dispositivo supporta solo determinati orientamenti.

android:showForAllUsers

Se l'attività viene mostrata quando l'utente corrente del dispositivo è diverso da quello dell'utente che ha avviato l'attività. Puoi impostare questo attributo in un valore letterale, come "true" o "false", oppure puoi impostare l'attributo su un attributo risorsa o tema che contiene un valore booleano.

Questo attributo è stato aggiunto nel livello API 23.

android:stateNotNeeded
Se l'attività può essere interrotta e riavviata correttamente senza averne salvato lo stato. È "true" se può essere riavviato senza riferimento allo stato precedente e "false" se quello precedente è obbligatorio. Il valore predefinito è "false".

Di solito, prima che un'attività venga temporaneamente interrotta per risparmiare risorse, onSaveInstanceState() . Questo metodo archivia lo stato corrente dell'attività in un Oggetto Bundle, che viene poi passato a onCreate() quando l'attività viene riavviato. Se questo attributo è impostato su "true", onSaveInstanceState() potrebbe non essere chiamato e onCreate() è stato superato null anziché Bundle, come quando inizia l'attività per la prima volta.

Un'impostazione "true" indica che l'attività può essere riavviata senza stato trattenuto. Ad esempio, l'attività che mostra La schermata Home utilizza questa impostazione per assicurarsi che non venga rimossa si arresta in modo anomalo per qualche motivo.

android:supportsPictureInPicture

Specifica se l'attività supporta display Picture in picture.

android:taskAffinity

L'attività per cui l'attività ha un'affinità. Attività con la stessa affinità concettualmente appartiene alla stessa attività, "applicazione" dal punto di vista dell'utente. L'affinità di un'attività è determinato dall'affinità della sua attività principale.

L'affinità determina due cose: l'attività per cui l'attività viene assegnata nuovamente all'attività principale. a (vedi allowTaskReparenting ) e l'attività che ospita l'attività al momento dell'avvio con FLAG_ACTIVITY_NEW_TASK flag.

Per impostazione predefinita, tutte le attività in un'applicazione hanno la stessa affinità. Tu puoi impostare questo attributo per raggrupparli in modo diverso e persino attività definite in applicazioni diverse all'interno della stessa attività. A specifica che l'attività non ha affinità per nessuna attività, imposta in una stringa vuota.

Se questo attributo non è impostato, l'attività eredita l'impostazione di affinità per l'applicazione. Consulta le <application> dell'elemento taskAffinity . Il nome dell'affinità predefinita per un'applicazione è lo spazio dei nomi impostato nel build.gradle file.

android:theme
Un riferimento a una risorsa di stile che definisce un tema generale per l'attività. In questo modo, il contesto dell'attività viene impostato automaticamente theme e potrebbero anche causa "avvio" animazioni prima dell'avvio dell'attività, per migliorare corrispondono all'aspetto reale dell'attività.

Se questo attributo non è impostato, l'attività eredita il tema impostato per dell'applicazione nel suo insieme, <application> dell'elemento theme . Se anche questo attributo non è impostato, viene utilizzato il tema di sistema predefinito. Per maggiori informazioni informazioni, consulta la sezione Stili e temi.

android:uiOptions

Opzioni aggiuntive per l'interfaccia utente di un'attività. Deve essere uno dei seguenti valori.

ValoreDescrizione
"none"Nessuna opzione UI aggiuntiva. Questa è l'impostazione predefinita.
"splitActionBarWhenNarrow"Aggiunge una barra in parte inferiore dello schermo per visualizzare le attività nella barra dell'app, nota anche come barra delle azioni, quando vincolato per lo spazio orizzontale, ad esempio in modalità verticale su uno smartphone. Invece di un piccolo di attività visualizzate nella barra delle app nella parte superiore dello schermo, la barra delle app è nella sezione di navigazione superiore e nella barra in basso per le attività. Ciò significa che una viene resa disponibile una quantità di spazio non solo per le attività, ma anche per la navigazione e il titolo elementi in alto. Le voci di menu non sono suddivise tra le due barre. Vengono sempre visualizzati in sinergia.

Per ulteriori informazioni sulla barra delle app, vedi Aggiungere la barra delle app.

Questo attributo è stato aggiunto nel livello API 14.

android:windowSoftInputMode
Interazione della finestra principale dell'attività con la finestra che contiene la tastiera su schermo. L'impostazione di questo attributo influisce su due cose:
  • Se la tastiera su schermo è nascosta o visibile quando l'attività diventa il dell'attenzione degli utenti.
  • Se la finestra principale dell'attività è ridimensionata per fare spazio alla tastiera software o ai suoi contenuti panoramica per rendere visibile l'elemento attivo corrente quando parte della finestra è coperta da la tastiera su schermo.

L'impostazione deve essere uno dei valori elencati nella seguente tabella oppure un combinazione di un valore "state..." più un "adjust..." valore. L'impostazione di più valori in entrambi i gruppi, ad esempio più valori Valori di "state..." con risultati non definiti. I singoli valori sono separati da una barra verticale (|), come mostrato nell'esempio seguente:

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

Valori impostati qui (diversi da "stateUnspecified" e "adjustUnspecified") sostituiscono i valori impostati nel tema.

Valore Descrizione
"stateUnspecified" Se la tastiera su schermo è nascosta o visibile non è specificato. Il sistema sceglie uno stato o si basa sull'impostazione nel tema.

Questa è l'impostazione predefinita per il comportamento della tastiera su schermo.

"stateUnchanged" La tastiera su schermo viene mantenuta nello stato in cui si trovava l'ultima volta, visibili o nascoste, quando l'attività viene in primo piano.
"stateHidden" La tastiera su schermo è nascosta quando l'utente sceglie l'attività, che è che l'utente accede affermativamente dell'attività, invece di riprenderla quando abbandoni un'altra attività.
"stateAlwaysHidden" La tastiera su schermo è sempre nascosta quando nella finestra principale dell'attività è incentrato sull'input.
"stateVisible" La tastiera su schermo viene resa visibile quando l'utente sceglie attività, ossia quando l'utente avanza all'attività, invece di tornare indietro quando lasci un'altra attività.
"stateAlwaysVisible" La tastiera su schermo è visibile quando la finestra riceve lo stato attivo dell'input.
"adjustUnspecified" Indica se la finestra principale dell'attività viene ridimensionata. per fare spazio alla tastiera software o ai contenuti della panoramica della finestra per rendere lo stato attivo corrente visibile sullo schermo non è specificato. Il sistema seleziona automaticamente una di queste modalità a seconda sulla presenza o meno di visualizzazioni di layout che mostrano i contenuti della finestra possono scorrere i contenuti. Se viene visualizzata una vista di questo tipo, la finestra i ridimensionamenti, supponendo che lo scorrimento possa rendere del contenuto della finestra visibile in un'area più piccola.

Questa è l'impostazione predefinita per il comportamento della finestra principale.

"adjustResize" La finestra principale dell'attività viene sempre ridimensionata per fare spazio la tastiera su schermo.
"adjustPan" La finestra principale dell'attività non viene ridimensionata per fare spazio tastiera. Piuttosto, i contenuti della finestra vengono fai una panoramica in modo che lo stato attivo corrente non sia mai oscurato dalla tastiera, e gli utenti possono sempre vedere quello che stanno digitando. Di solito è meno frequente desiderabile rispetto al ridimensionamento, perché l'utente potrebbe dover chiudere tastiera per raggiungere e interagire con le parti oscurate della finestra.

Questo attributo è stato introdotto nel livello API 3.

introdotto in:
Livello API 1 per tutti gli attributi tranne noHistory e windowSoftInputMode, che sono stati aggiunti nell'API livello 3.
vedi anche:
<application>
<activity-alias>