lightbulb_outline Please take our October 2018 developer survey. Start survey

sintaxe:
<activity android:allowEmbedded=["true" | "false"]
          android:allowTaskReparenting=["true" | "false"]
          android:alwaysRetainTaskState=["true" | "false"]
          android:autoRemoveFromRecents=["true" | "false"]
          android:banner="drawable resource"
          android:clearTaskOnLaunch=["true" | "false"]
          android:configChanges=["mcc", "mnc", "locale",
                                 "touchscreen", "keyboard", "keyboardHidden",
                                 "navigation", "screenLayout", "fontScale",
                                 "uiMode", "orientation", "screenSize",
                                 "smallestScreenSize"]
          android:documentLaunchMode=["intoExisting" | "always" |
                                  "none" | "never"]
          android:enabled=["true" | "false"]
          android:excludeFromRecents=["true" | "false"]
          android:exported=["true" | "false"]
          android:finishOnTaskLaunch=["true" | "false"]
          android:hardwareAccelerated=["true" | "false"]
          android:icon="drawable resource"
          android:label="string resource"
          android:launchMode=["standard" | "singleTop" |
                              "singleTask" | "singleInstance"]
          android:maxRecents="integer"
          android:multiprocess=["true" | "false"]
          android:name="string"
          android:noHistory=["true" | "false"]  
          android:parentActivityName="string" 
          android:permission="string"
          android:process="string"
          android:relinquishTaskIdentity=["true" | "false"]
          android:resizeableActivity=["true" | "false"]
          android:screenOrientation=["unspecified" | "behind" |
                                     "landscape" | "portrait" |
                                     "reverseLandscape" | "reversePortrait" |
                                     "sensorLandscape" | "sensorPortrait" |
                                     "userLandscape" | "userPortrait" |
                                     "sensor" | "fullSensor" | "nosensor" |
                                     "user" | "fullUser" | "locked"]
          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>
contido em:
<application>
pode conter:
<intent-filter>
<meta-data>
descrição:
Declara uma atividade (uma subclasse Activity) que implementa parte da interface do usuário visual do aplicativo. Todas as atividades devem ser representadas por elementos <activity> no arquivo de manifesto. Qualquer atividade não declarada nesse arquivo não será vista pelo sistema e nunca será executada.
atributos:
android:allowEmbedded
Indica que a atividade pode ser lançada como filho incorporado de outra atividade. Particularmente no caso em que o filho reside em um contêiner, como um Display pertencente a outra atividade. Por exemplo, atividades usadas para notificações personalizadas do Wear devem fazer essa declaração, para que o Wear possa exibir a atividade no stream de seu contexto, que reside em outro processo.

O valor padrão do atributo é false.

android:allowTaskReparenting
Se a atividade puder ser movida da tarefa que a iniciou para a tarefa com a qual a atividade tem afinidade na próxima vez que essa tarefa for trazida para a frente — "true" se for possível mover a atividade e "false" se ela for permanecer na tarefa em que foi iniciada.

Se o atributo não for definido, o valor definido pelo atributo allowTaskReparenting correspondente do elemento <application> será aplicado à atividade. O valor padrão é "false".

Normalmente, quando uma atividade é iniciada, é associada à tarefa da atividade que a iniciou e permanece nessa tarefa durante toda a sua vida útil. Você pode usar esse atributo para forçar a atividade a assumir como novo pai a tarefa com a qual a atividade passará ter afinidade quando a tarefa atual deixar de ser exibida. Normalmente, esse recurso é usado para fazer com que as atividades de um aplicativo sejam movidas para a tarefa principal associada ao aplicativo.

Por exemplo: se uma mensagem de e-mail tiver um link para uma página da Web, um clique nesse link aciona uma atividade que pode exibir a página. Essa atividade é definida pelo aplicativo do navegador, mas é lançada como parte da tarefa do e-mail. Se a atividade assumir a tarefa do navegador como novo pai, será mostrada na próxima vez que o navegador vier para a frente e estará ausente quando a tarefa do e-mail vier para a frente novamente.

A afinidade de uma atividade é definida pelo atributo taskAffinity. A afinidade de uma tarefa é determinada pela leitura da afinidade de sua atividade raiz. Portanto, por definição, uma atividade raiz está sempre em uma tarefa com a mesma afinidade. Como as atividades com modos de inicialização "singleTask" ou "singleInstance" podem estar apenas na raiz de uma tarefa, a ação de assumir um novo pai está limitada aos modos "standard" e "singleTop". (Consulte também o atributo launchMode.)

android:alwaysRetainTaskState
Se o estado da tarefa onde está a atividade será sempre mantido pelo sistema — "true" se será sempre mantida e "false" se o sistema poderá redefinir a tarefa a seu estado inicial em determinadas situações. O valor padrão é "false". Esse atributo é significativo apenas para a atividade raiz de uma tarefa e é ignorado para todas as outras atividades.

Normalmente, o sistema limpa uma tarefa (remove todas as atividades da pilha acima da atividade raiz) em determinadas situações, quando o usuário seleciona novamente essa tarefa na tela inicial. Geralmente, isso é feito se o usuário não acessou a tarefa por uma determinada quantidade de tempo, como 30 minutos.

No entanto, quando o atributo for "true", os usuários sempre retornarão à tarefa em seu último estado, independentemente de como chegarem lá. Isso é útil, por exemplo, em um aplicativo como o navegador da Web, onde há muitas informações de estado (como várias guias abertas) que os usuários não gostariam de perder.

android:autoRemoveFromRecents
Se as tarefas lançadas com esse atributo permanecerão na tela de visão geral até que a última atividade na tarefa seja concluída. Se true, a tarefa será automaticamente removida da tela de visão geral. Isso modifica o uso de FLAG_ACTIVITY_RETAIN_IN_RECENTS pelo autor da chamada. O valor deve ser booleano, "true" ou "false".
android:banner
Um recurso drawable que fornece um banner gráfico estendido para seu item associado. Use com a tag <activity> para fornecer um banner padrão para uma atividade específica ou com a tag <application> para fornecer um banner para todas as atividades do aplicativo.

O sistema usa o banner para representar um aplicativo na tela inicial do Android TV. Como o banner é exibido na tela inicial, ele deve ser especificado apenas por aplicativos com uma atividade que processa o intentCATEGORY_LEANBACK_LAUNCHER.

Esse atributo deve ser definido como referência a um recurso drawable contendo a imagem (por exemplo, "@drawable/banner"). Não há nenhum banner padrão.

Consulte Banners no guia de projeto de padrões de IU para TV e Oferecer um banner de tela inicial em Introdução a Aplicativos para TV para obter mais informações.

android:clearTaskOnLaunch
Se todas as atividades forem removidas da tarefa, exceto pela atividade raiz, sempre que for inicializada novamente da página inicial — "true" se a tarefa for sempre reduzida à sua atividade raiz ou, caso contrário, "false". O valor padrão é "false". Esse atributo é significativo apenas para atividades que iniciam uma nova tarefa (a atividade raiz) e é ignorada para todas as outras atividades na tarefa.

Quando o valor for "true", sempre que o usuário reiniciar a tarefa, será levado à sua atividade raiz, independentemente do que fazia na tarefa anterior e de ter usado o botão Back ou Home para deixá-la. Quando o valor for "false", será possível remover as atividades da tarefa em algumas situações (consulte o atributo alwaysRetainTaskState), mas nem sempre.

Por exemplo: alguém inicialize a atividade P na tela inicial e vá dela para a atividade Q. Em seguida, o usuário pressiona Home e volta à atividade P. Normalmente, o usuário veria a atividade Q, pois era onde estava na tarefa da atividade P. No entanto, se P definiu esse sinalizador como "true", todas as atividades acima dela (neste caso, Q) foram removidas quando o usuário pressionou Home e a tarefa foi para o segundo plano. Portanto, o usuário verá apenas P quando voltar à tarefa.

Se esse atributo e allowTaskReparenting forem ambos "true", todas as atividades que puderem assumir um novo pai serão movidas para a tarefa com a qual compartilham alguma afinidade. As demais atividades serão descartadas, como descrito acima.

android:configChanges
Lista a alterações de configuração processadas pela própria atividade. Quando ocorre uma alteração de configuração em tempo de execução, a atividade é desativada e reinicializada por padrão. No entanto, a declaração de uma configuração com este atributo evita que a atividade seja reinicializada. Em vez disso, a atividade permanecerá em execução e seu método onConfigurationChanged() será chamado.

Observação: Evite usar esse atributo e use-o apenas como último recurso. Leia Processamento de alterações em tempo de execução para obter mais informações sobre como processar corretamente uma reinicialização causada por uma alteração de configuração.

Todas as strings a seguir são valores válidos para esse atributo. Valores múltiplos são separados por '|' — por exemplo: "locale|navigation|orientation".

Valor Descrição
"mcc" O código de país móvel (MCC) IMSI foi alterado — um SIM foi detectado e atualizou o MCC.
"mnc" O código de rede móvel (MNC) IMSI foi alterado — um SIM foi detectado e atualizou o MNC.
"locale" A localidade foi modificada — o usuário solicitou um novo idioma para exibição do texto.
"touchscreen" A tela tátil foi alterada. (Normalmente, isso não deveria acontecer.)
"keyboard" O tipo de teclado foi alterado — por exemplo, o usuário conectou um teclado externo.
"keyboardHidden" A acessibilidade do teclado foi alterada — por exemplo, o usuário revelou o teclado de hardware.
"navigation" O tipo de navegação (trackball/dpad) foi alterado. (Normalmente, isso não deveria acontecer.)
"screenLayout" O layout da tela foi alterado — isso pode ser causado pela ativação de uma tela diferente.
"fontScale" O fator de dimensionamento de fone foi alterado — o usuário selecionou um novo tamanho global de fonte.
"uiMode" O modo de interface do usuário foi alterado — isso pode ser causado quando o usuário coloca o dispositivo em dock de mesa/carro ou quando o modo noturno é alterado. Consulte UiModeManager. Adicionado à API de nível 8.
"orientation" A orientação da tela mudou — o usuário girou o dispositivo.

Observação: Se o aplicativo for direcionado à API de nível 13 ou superior (conforme declarado pelos atributos minSdkVersion e targetSdkVersion), será necessário declarar também a configuração "screenSize", pois ela também será alterada quando a orientação do dispositivo mudar entre retrato e paisagem.

"screenSize" O tamanho de tela atual disponível foi alterado. Isso representa uma alteração no tamanho atual disponível em relação à taxa de proporção atual, que será alterada quando o usuário mudar entre paisagem e retrato. No entanto, se o aplicativo for direcionado à API de nível 12 ou inferior, a atividade sempre processará ela mesma a alteração de configuração (essa alteração de configuração não reiniciará a atividade, mesmo quando executada em um dispositivo com Android 3.2 ou superior).

Adicionado na API de nível 13.

"smallestScreenSize" O tamanho físico da tela mudou. Isso representa uma alteração de tamanho, independentemente da orientação. Portanto, essa alteração ocorre apenas quando o tamanho físico da tela é alterado, como na alteração para uma tela externa. Uma alteração nessa configuração corresponde a uma alteração na configuração smallestWidth. No entanto, se o aplicativo for direcionado à API de nível 12 ou inferior, a atividade sempre processará ela mesma a alteração de configuração (essa alteração de configuração não reiniciará a atividade, mesmo quando executada em um dispositivo com Android 3.2 ou superior).

Adicionado na API de nível 13.

"layoutDirection" A direção do layout mudou. Por exemplo: mudou de esquerda para a direita (LTR) para direita para a esquerda (RTL). Adicionado à API de nível 17.

Todas essas alterações de configuração podem afetar os valores do recurso percebidos pelo aplicativo. Portanto, quando onConfigurationChanged() for chamado, normalmente será necessário recuperar novamente todos os recursos (inclusive layouts de visualização, drawables e assim por diante) para processar corretamente a alteração.

android:documentLaunchMode
Especifica como uma nova instância de uma atividade deve ser adicionada a uma tarefa sempre que ela for inicializada. Esse atributo permite que o usuário possa ver vários documentos do mesmo aplicativo na tela de visão geral.

Esse atributo tem quatro valores que produzem os seguintes efeitos quando o usuário abre um documento com o aplicativo:

Valor Descrição
"intoExisting" A atividade reutiliza a tarefa existente para o documento. O uso desse valor é o mesmo que configurar o sinalizador FLAG_ACTIVITY_NEW_DOCUMENT sem configurar o sinalizador FLAG_ACTIVITY_MULTIPLE_TASK, como descrito em Uso do sinalizador Intent para adicionar uma tarefa.
"always" A atividade cria uma nova tarefa para o documento mesmo se ele já estiver aberto. Isso é o mesmo que configurar os sinalizadores FLAG_ACTIVITY_NEW_DOCUMENT e FLAG_ACTIVITY_MULTIPLE_TASK.
"none" A atividade não cria nenhuma tarefa nova para a atividade. Esse é o valor padrão, que cria uma tarefa nova apenas quando FLAG_ACTIVITY_NEW_TASK é definido. A tela de visão geral trata a atividade como aconteceria por padrão: ela exibe uma tarefa para o aplicativo, que retoma a atividade invocada por último pelo usuário.
"never" Essa atividade não é inicializada em um novo documento, mesmo quando o Intent contém FLAG_ACTIVITY_NEW_DOCUMENT. A definição desse atributo modifica o comportamento dos sinalizadores FLAG_ACTIVITY_NEW_DOCUMENT e FLAG_ACTIVITY_MULTIPLE_TASK, se um deles estiver definido na atividade, e a tela de visão geral exibe uma única tarefa para o aplicativo, que retoma a atividade invocada por último pelo usuário.

Observação: Para valores diferentes de "none" e "never", a atividade deve ser definida com launchMode="standard". Se esse atributo não for usado, será usado documentLaunchMode="none".

android:enabled
Se a atividade puder ser instanciada pelo sistema — "true" se puder e "false" se não puder. O valor padrão é "true".

O elemento <application> tem seu próprio atributo enabled, que se aplica a todos os componentes do aplicativo, inclusive atividades. Os atributos <application> e <activity> devem ambos ser "true" (como são por padrão) para que o sistema possa instanciar a atividade. Se um deles for "false", não será possível instanciar a atividade.

android:excludeFromRecents
Se a tarefa iniciada por essa atividade deve ser excluída da lista de aplicativos usados recentemente, a tela de visão geral. Ou seja, quando essa atividade for a atividade raiz de uma nova tarefa, esse atributo determina se a tarefa não deve aparecer na lista de aplicativos recentes. Defina "true" se a tarefa deve ser excluída da lista ou "false" se ela deve ser incluída. O valor padrão é "false".

android:exported
Se a atividade puder ser inicializada pelos componentes de outros aplicativos — "true" se puder ou "false" se não puder. Se "false", só será possível inicializar a atividade pelos componentes do mesmo aplicativo ou aplicativos com o mesmo ID do usuário.

O valor padrão depende de a atividade conter filtros de intents. A ausência de filtros significa que a atividade pode ser invocada apenas especificando o nome exato de sua classe. Isso implica que a atividade é destinada apenas para uso interno do aplicativo (pois o nome da classe não é conhecido fora dele). Portanto, nesse caso, o valor padrão é "false". Por outro lado, a presença de pelo menos um filtro significa que a atividade se destina a uso externo, portanto, o valor padrão é "true".

Esse atributo não é a única forma de limitar a exposição de uma atividade a outros aplicativos. Também é possível usar uma permissão para limitar as entidades externas que podem invocar a atividade (consulte o atributo permission).

android:finishOnTaskLaunch
Se uma instância existente da atividade tiver que ser desativada (encerrada) sempre que o usuário inicializar novamente sua tarefa (escolhe a tarefa na tela inicial) — "true" se deverá ser desativada ou, caso contrário, "false". O valor padrão é "false".

Se esse atributo e allowTaskReparenting forem ambos "true", esse atributo prevalecerá sobre o outro. A afinidade da atividade é ignorada. Em vez de assumir um novo pai, a atividade será destruída.

android:hardwareAccelerated
Se a renderização acelerada por hardware deve ser ativada para esta atividade — "true" se ela deve ser ativada ou, caso contrário, "false". O valor padrão é "false".

A partir do Android 3.0, há um renderizador de OpenGL acelerado por hardware disponível aos aplicativos para melhorar o desempenho de várias operações comuns de gráficos 2D. Quando o renderizador acelerado por hardware for ativado, a maioria das operações em Canvas, Paint, Xfermode, ColorFilter, Shader e Camera será acelerada. Os resultados serão animações e rolagens mais suaves e maior capacidade de resposta geral, mesmo em aplicativos que não fazem uso explícito das bibliotecas de OpenGL da estrutura de trabalho. Devido ao maior número de recursos necessários para ativar a aceleração de hardware, o aplicativo consumirá mais RAM.

Observe que nem todas as operações 2D do OpenGL serão aceleradas. Se você ativar o renderizador acelerado por hardware, teste o aplicativo para garantir que poderá usar o renderizador sem erros.

android:icon
Ícone que representa a atividade. O ícone será exibido aos usuários quando for necessário representar a atividade na tela. Por exemplo: os ícones de atividades que inicializam tarefas são exibidos na janela do inicializador. Muitas vezes, o ícone é acompanhado por um rótulo (consulte o atributo android:label).

Esse atributo deve ser definido como referência a um recurso drawable contendo a definição da imagem. Se não definido, será usado o ícone especificado para o aplicativo como um todo (consulte o atributo icon do elemento <application>).

O ícone da atividade — definido aqui ou pelo elemento <application> — é também o ícone padrão para todos os filtros de intents da atividade (consulte o atributo icon do elemento <intent-filter>).

android:label
Rótulo legível pelo usuário para a atividade. O rótulo é exibido na tela quando a atividade deve ser representada para o usuário. Muitas vezes, é exibido juntamente com o ícone de atividade.

Se o atributo não for definido, será usado o conjunto de rótulos para o aplicativo como um todo (consulte o atributo label do elemento <application>).

O rótulo da atividade — definido aqui ou pelo elemento <application> — é também o rótulo padrão para todos os filtros de intents da atividade (consulte o atributo label do elemento <intent-filter>).

Deve-se definir o rótulo como referência a um recurso de string para que seja localizado como as outras strings na interface do usuário. No entanto, para maior conveniência durante o desenvolvimento do aplicativo, também é possível defini-lo como uma string bruta.

android:launchMode
Instrução de inicialização da atividade. Há quatro modos que funcionam em conjunto com os sinalizadores de atividade (constantes FLAG_ACTIVITY_*) em objetos Intent para determinar o que deve acontecer quando a atividade é chamada para processar um intent. Os modos são:

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

O modo padrão é "standard".

Como mostrado na tabela abaixo, os modos se dividem em dois grupos principais, com atividades "standard" e "singleTop" de um lado e atividades "singleTask" e "singleInstance" do outro. Atividades com o modo de inicialização "standard" ou "singleTop" podem ser instanciadas várias vezes. As instâncias podem pertencer a qualquer tarefa e podem localizar-se em qualquer lugar da pilha de atividades. Normalmente, elas são lançadas na tarefa denominada startActivity() (a menos que o objeto Intent contenha uma instrução FLAG_ACTIVITY_NEW_TASK: nesse caso, uma tarefa diferente é escolhida — consulte o atributo taskAffinity).

Por outro lado, as atividades "singleTask" e "singleInstance" podem apenas iniciar uma tarefa. Elas estão sempre na raiz da pilha de atividades. Além disso, o dispositivo pode conter apenas uma instância da atividade em um determinado momento — apenas uma dessas tarefas.

Os modos "standard" e "singleTop" diferem entre si em um único aspecto: Sempre que houver um novo intent para uma atividade "standard", uma nova instância da classe será criada para responder ao intent. Cada instância processa um único intent. Da mesma forma, também é possível criar uma nova instância de uma atividade "singleTop" para processar um novo intent. No entanto, se a tarefa de destino já tiver uma instância da atividade no topo da sua pilha, essa instância receberá o novo intent (em uma chamada onNewIntent()) e nenhuma instância nova será criada. Em outras circunstâncias — por exemplo, se uma instância existente da atividade "singleTop" estiver na tarefa de destino, mas não no topo da pilha, ou se estiver no topo da pilha, mas não na tarefa de destino — uma nova instância será criada e colocada na pilha.

Da mesma forma, se você navegar para cima até uma atividade na pilha atual, o comportamento será determinado pelo modo de inicialização da atividade pai. Se a atividade pai tiver o modo de inicialização singleTop (ou o intent up contiver FLAG_ACTIVITY_CLEAR_TOP), o pai será levado ao topo da pilha e seu estado será preservado. O intent de navegação é recebido pelo método onNewIntent() da atividade pai. Se a atividade pai tiver o modo de lançamento standard (e o intent up não contiver FLAG_ACTIVITY_CLEAR_TOP), a atividade atual e seu pai serão retirados da pilha e uma nova instância da atividade pai será criada para receber o intent de navegação.

Os modos "singleTask" e "singleInstance" também diferem entre si em apenas um aspecto: Uma atividade "singleTask" permite que outras atividades participem de sua tarefa. Isso ocorre sempre na raiz de sua tarefa, mas outras atividades (necessariamente "standard" e "singleTop") podem ser inicializadas nessa tarefa. Por outro lado, atividades "singleInstance" não permitem nenhuma outra atividade como parte da tarefa. Elas são as únicas atividades na tarefa. Se ela iniciar outra atividade, ela será atribuída a uma tarefa diferente — como se FLAG_ACTIVITY_NEW_TASK estivesse no intent.

Casos de uso Modo de inicialização Várias instâncias? Comentários
Inicializações normais para a maioria das atividades "standard" Sim Padrão. O sistema sempre cria uma nova instância da atividade na tarefa de destino e encaminha-lhe o intent.
"singleTop" Condicionalmente Se uma instância da atividade já existir no topo da tarefa de destino, o sistema encaminhará o intent àquela instância por meio de uma chamada a seu método onNewIntent() em vez de criar uma nova instância da atividade.
Inicializações especializadas
(não recomendadas para uso geral)
"singleTask" Não O sistema recria a atividade na raiz de uma nova tarefa e encaminha-lhe o intent. No entanto, se uma instância da atividade já existir, o sistema encaminhará o intent àquela instância por meio de uma chamada ao seu método onNewIntent() em vez de criar uma nova instância.
"singleInstance" Não O mesmo que "singleTask", mas o sistema não inicializa nenhuma outra atividade na tarefa que contenha a instância. A atividade é sempre o único membro de sua tarefa.

Como mostrado na tabela acima, standard é o modo padrão e é adequado para a maioria dos tipos de atividades. SingleTop também é um modo de inicialização comum e útil para vários tipos de atividades. Os outros modos — singleTask e singleInstance — não são adequados para a maioria dos aplicativos, pois resultam em um modelo de interação que provavelmente não é muito conhecido pelos usuários e bem diferente da maioria dos outros aplicativos.

Independentemente do modo de inicialização escolhido, não deixe de testar a usabilidade da atividade durante a inicialização e quando voltar a ele de outras atividades e tarefas usando o botão Back.

Para obter mais informações sobre modos de inicialização e sua interação com sinalizadores Intent, consulte o documento Tarefas e pilha de retorno.

android:maxRecents
O número máximo de tarefas com raiz nessa atividade na tela de visão geral. Quando esse número de entradas for alcançado, o sistema removerá a instância menos recentemente usada da tela de visão geral. Os valores válidos são de 1 a 50 (25 em dispositivos com pouco memória); zero é inválido. Esse valor deve ser um inteiro, como 50. O valor padrão é 16.
android:multiprocess
Se for possível inicializar uma instância da atividade no processo do componente que a iniciou — "true" se puder ou, caso contrário, "false". O valor padrão é "false".

Normalmente, inicializa-se uma nova instância de uma atividade no processo do aplicativo que a definiu. Portanto, todas as instâncias da atividade são executadas no mesmo processo. No entanto, se esse sinalizador for definido como "true", será possível executar instâncias da atividade em vários processos, permitindo ao sistema criar instâncias sempre que elas forem usadas (desde que as permissões permitam), algo que quase nunca é necessário nem desejável.

android:name
O nome da classe que implementa a atividade, uma subclasse de Activity. O valor do atributo deve ser um nome de classe totalmente qualificado (como "com.example.project.ExtracurricularActivity"). No entanto, como agilizador, se o primeiro caractere do nome for um ponto (por exemplo, ".ExtracurricularActivity"), será anexado ao nome do pacote especificado no elemento <manifest>.

Não altere o nome do aplicativo depois de publicá-lo (a menos que você tenha definido android:exported="false").

Não há nenhum valor padrão. Deve-se especificar o nome.

android:noHistory
Se a atividade tiver que ser removida da pilha de atividades e encerrada (seu método finish() será chamado) quando o usuário navegar para outro lugar e ela não estiver mais visível na tela — "true" se tiver que ser encerrada ou, caso contrário, "false". O valor padrão é "false".

Um valor de "true" significa que a atividade não será incluída no histórico. A atividade não permanecerá na pilha de atividades da tarefa, portanto, o usuário não poderá retornar a ela. Nesse caso, onActivityResult() nunca será chamado se você iniciar outra atividade para o resultado dessa atividade.

Esse atributo foi introduzido na API de nível 3.

android:parentActivityName
O nome da classe do pai lógico da atividade. Esse nome deve corresponder ao nome informado ao atributo android:name do elemento <activity>.

O sistema lê esse atributo para determinar qual atividade será iniciada quando o usuário pressionar o botão Up na barra de ações. O sistema também pode usar essas informações para sintetizar uma pilha de retorno de atividades com TaskStackBuilder.

Para compatibilidade com as APIs de níveis 4 a 16, também é possível declarar a atividade pai com um elemento <meta-data> que especifica um valor para "android.support.PARENT_ACTIVITY". Por exemplo:

<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>

Para obter mais informações sobre a declaração de atividades do pai para comportar a navegação Up, leia Fornecimento da navegação Up.

Esse atributo foi introduzido na API de nível 16.

android:permission
O nome de uma permissão necessária para que os clientes lancem a atividade ou façam com que ela responda a um intent. Se o autor da chamada de startActivity() ou startActivityForResult() não receber a permissão especificada, seu intent não será entregue à atividade.

Se o atributo não for definido, a permissão definida pelo atributo permission do elemento <application> se aplicará à atividade. Se nenhum atributo for definido, nenhuma permissão protegerá a atividade.

Para obter mais informações sobre permissões, consulte a seção Permissões na introdução e o documento Segurança e permissões.

android:process
O nome do processo em que a atividade deve ser executada. Normalmente, todos os componentes de um aplicativo são executados em um nome de processo padrão criado para o aplicativo e não é necessário usar esse atributo. No entanto, se necessário, você pode modificar o nome do processo padrão com este atributo, permitindo distribuir os componentes do aplicativo em vários processos.

Se o nome designado a esse atributo começar com dois pontos (':'), quando necessário, será criado um novo processo, privado para o aplicativo, e a atividade executará nesse processo. Se o nome do processo começar com um caractere minúsculo, a atividade executará em um processo global com esse nome, desde que tenha permissão para isso. Isso permite que componentes em aplicativos diferentes compartilhem um processo para reduzir o consumo de recursos.

O atributo process do elemento <application> pode definir um nome de processo padrão diferente para todos os componentes.

android:relinquishTaskIdentity
Se a atividade libera identificadores de suas tarefas para uma atividade acima dela na pilha de tarefas. Tarefas com atividade raiz onde esse atributo é definido como "true" substituem o Intent da base com o da próxima atividade na tarefa. Se a próxima atividade também tiver esse atributo definido como "true", ela liberará o Intent da base para qualquer atividade que tiver lançado na mesma tarefa. Isso continuará para cada atividade até chegar a uma delas com o atributo definido como "false". O valor padrão é "false".

A definição desse atributo como "true" também permite que a atividade use ActivityManager.TaskDescription para alterar rótulos, cores e ícones na janela de visão geral.

resizeableActivity

Especifica se o aplicativo é compatível com exibição em várias janelas. Você pode definir esse atributo no elemento <activity> ou <application>.

Se você definir esse atributo como verdadeiro, o usuário poderá inicializar a atividade nos modos de tela dividida e forma livre. Se você definir o atributo como falso, a atividade não será compatível com o modo de várias janelas. Se esse valor for falso e o usuário tentar iniciar a atividade no modo de várias janelas, a atividade ocupará a tela inteira.

Se o aplicativo for direcionado à API de nível 24 ou superior, mas o valor desse atributo não for especificado, o atributo assumirá o valor padrão de verdadeiro.

Esse atributo foi adicionado na API de nível 24.

android:screenOrientation
A orientação da tela da atividade no dispositivo. O sistema ignorará esse atributo se a atividade estiver em execução no modo de várias janelas.

O valor pode ser qualquer uma das strings a seguir:

"unspecified" O valor padrão. O sistema escolhe a orientação. A política usada e, portanto, as escolhas feitas em contextos específicos, poderão diferir entre dispositivos.
"behind" A mesma orientação da atividade imediatamente abaixo na pilha de atividades.
"landscape" Orientação de paisagem (a tela é mais larga que alta).
"portrait" Orientação de retrato (a tela é mais alta que larga).
"reverseLandscape" Orientação de paisagem na direção oposta da paisagem normal. Adicionado na API de nível 9.
"reversePortrait" Orientação de retrato na direção oposta do retrato normal. Adicionado na API de nível 9.
"sensorLandscape" Orientação de paisagem, mas pode ser paisagem normal ou invertida, dependendo do sensor do dispositivo. Adicionado na API de nível 9.
"sensorPortrait" Orientação de retrato, mas pode ser retrato normal ou invertido dependendo do sensor do dispositivo. Adicionado na API de nível 9.
"userLandscape" Orientação de paisagem, mas pode ser paisagem normal ou invertida, dependendo do sensor do dispositivo e da preferência de sensor do usuário. Se o usuário bloqueou a rotação baseada em sensor, o comportamento será o mesmo de landscape, senão será o mesmo de sensorLandscape. Adicionado na API de nível 18.
"userPortrait" Orientação de paisagem, mas pode ser retrato normal ou invertida conforme o sensor do dispositivo e da preferência de paisagem do usuário. Se o usuário bloqueou a rotação baseada em sensor, o comportamento será o mesmo de portrait, senão será o mesmo de sensorPortrait. Adicionado na API de nível 18.
"sensor" A orientação é determinada pelo sensor de orientação do dispositivo. A orientação do dispositivo depende da forma com que o usuário segura o dispositivo e altera-se quando o dispositivo gira. No entanto, por padrão, alguns dispositivos não giram em todas as quatro orientações possíveis. Para permitir todas as quatro orientações, use "fullSensor".
"fullSensor" A orientação é determinada pelo sensor de orientação do dispositivo para qualquer uma das quatro orientações. Isso é semelhante a "sensor", exceto por permitir qualquer uma das quatro orientações possíveis, independentemente do que o dispositivo faz normalmente (por exemplo, alguns dispositivos não usam normalmente paisagem ou retrato invertido, mas esta definição ativa essas orientações). Adicionado à API de nível 9.
"nosensor" A orientação é determinada sem referência a nenhum sensor de orientação físico. O sensor é ignorado, portanto, a tela não girará de acordo com a forma como o usuário move o dispositivo. Exceto por essa diferença, o sistema escolhe a orientação usando a mesma política que a configuração "unspecified".
"user" A orientação preferida atual do usuário.
"fullUser" Se o usuário bloqueou a rotação baseada em sensor, o comportamento será o mesmo de user, senão será o mesmo de fullSensor e permitirá qualquer uma das quatro orientações de tela possíveis. Adicionado na API de nível 18.
"locked" Bloqueia a orientação na rotação atual qualquer que seja. Adicionado na API de nível 18.

Observação: Ao declarar um dos valores de paisagem ou retrato, ele será considerado um requisito fixo para a orientação usada pela atividade. Como tal, o valor declarado ativa a filtragem por serviços como Google Play, fazendo com que o aplicativo fique disponível apenas para dispositivos compatíveis com a orientação exigida pelas atividades. Por exemplo: se você declarar "landscape", "reverseLandscape" ou "sensorLandscape", o aplicativo será disponibilizado apenas aos dispositivos compatíveis com a orientação paisagem. No entanto, você também deve declarar explicitamente que o aplicativo exige orientação de retrato ou paisagem com o elemento <uses-feature>. Por exemplo, <uses-feature android:name="android.hardware.screen.portrait"/>. Esse comportamento é simplesmente uma filtragem fornecida pelo Google Play (e outros serviços compatíveis). A plataforma em si não controla se o aplicativo pode ser instalado quando um dispositivo é compatível apenas com determinadas orientações.

android:stateNotNeeded
Se for possível eliminar e reinicializar a atividade sem salvar o estado — "true" se puder ser reinicializada sem referência ao estado anterior e "false" se o estado anterior for necessário. O valor padrão é "false".

Normalmente, antes que uma atividade seja desativada temporariamente para poupar recursos, seu método onSaveInstanceState() é chamado. Esse método armazena o estado atual da atividade em um objeto Bundle, passado a onCreate() quando a atividade é reiniciada. Se este atributo for definido como "true", não será possível chamar onSaveInstanceState() e onCreate() receberá null em vez do pacote — da mesma forma que no início da atividade pela primeira vez.

A configuração "true" garante que a atividade possa ser reiniciada na falta do estado retido. Por exemplo: a atividade que exibe a tela inicial usa essa configuração para assegurar que não será removida se falhar por algum motivo.

supportsPictureInPicture

Especifica se a atividade é compatível com a exibição imagem em imagem. O sistema ignorará esse atributo se android:resizeableActivity for falso.

Esse atributo foi adicionado na API de nível 24.

android:taskAffinity
A tarefa com a qual a atividade tem uma afinidade. Atividades com a mesma afinidade pertencem conceitualmente à mesma tarefa (ao mesmo "aplicativo", na visão do usuário). A afinidade de uma tarefa é determinada pela afinidade de sua atividade raiz.

A afinidade determina duas coisas: a tarefa que a atividade assume como novo pai (consulte o atributo allowTaskReparenting) e a tarefa que hospedará a atividade quando esta for inicializada com o sinalizador FLAG_ACTIVITY_NEW_TASK.

Por padrão, todas as atividades de um aplicativo têm a mesma afinidade. É possível definir esse atributo para agrupá-las de forma diferente e até mesmo colocar atividades definidas em aplicativos diferentes dentro da mesma tarefa. Para especificar que a atividade não tem afinidade com nenhuma tarefa, defina o atributo como uma string vazia.

Se o atributo não for definido, a atividade herdará a afinidade definida para o aplicativo (consulte o atributo taskAffinity do elemento <application>). O nome da afinidade padrão de um aplicativo é o nome do pacote definido pelo elemento <manifest>.

android:theme
Uma referência a um recurso de estilo que define o tema geral da atividade. Isso configura automaticamente o contexto da atividade para usar esse tema (consulte setTheme() e também pode "iniciar" animações antes que a atividade seja lançada (para melhor correspondência com a aparência real da atividade).

Se esse atributo não for definido, a atividade herdará o tema definido para o aplicativo como um todo — do atributo theme do elemento <application>. Se aquele atributo também não for definido, será usado o tema do sistema padrão. Para obter mais informações, consulte o guia do desenvolvedor Estilos e temas.

android:uiOptions
Opções adicionais para a IU de uma atividade.

Deve ser um dos seguintes valores:

ValorDescrição
"none"Sem opções adicionais de IU. Esse é o padrão.
"splitActionBarWhenNarrow"Adiciona uma barra à parte inferior da tela para exibir itens de ação na barra de aplicativos (também conhecida como barra de ações) quando houver restrição de espaço horizontal (como no modo retrato em um celular). Em vez de um pequeno número de itens de ação aparecendo na barra de aplicativos na parte superior da tela, a barra de aplicativos se divide na seção de navegação superior e na barra inferior para itens de ação. Com isso, disponibiliza-se uma quantidade razoável de espaço não apenas para os itens de ação, mas também para elementos de navegação e título na parte superior. Os itens de menu não são divididos nas duas barras e são sempre exibidos juntos.

Para obter mais informações sobre a barra de aplicativos, consulte a classe de treinamento Adição da barra do aplicativo.

Esse atributo foi adicionado na API de nível 14.

android:windowSoftInputMode
A forma de interação da janela principal da atividade com a janela que contém o teclado de software na tela. A definição desse atributo afeta duas coisas:
  • O estado do teclado de software — se está oculto ou visível — quando a atividade se torna o foco da atenção do usuário.
  • O ajuste feito na janela principal da atividade — se redimensionada com tamanho menor para criar espaço para o teclado de software ou se o conteúdo se desloca para tornar visível o foco atual quando parte da janela é coberta pelo teclado de software.

A configuração deve ser um dos valores listados na tabela a seguir ou uma combinação de um valor "state..." com um valor "adjust...". A definição de vários valores em um dos grupos — vários valores "state...", por exemplo — gera resultados indefinidos. Valores individuais são separados por uma barra vertical (|). Por exemplo:

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

Os valores definidos aqui (que não "stateUnspecified" e "adjustUnspecified") modificam os valores definidos no tema.

Valor Descrição
"stateUnspecified" O estado do teclado de software (oculto ou visível) não é especificado. O sistema escolherá um estado adequado ou usará a definição do tema.

Essa é a configuração padrão para o comportamento do teclado de software.

"stateUnchanged" O teclado de software será mantido no estado anterior, visível ou invisível, quando a atividade vier para o primeiro plano.
"stateHidden" O teclado de software será oculto quando o usuário escolher a atividade — ou seja, quando o usuário navegar afirmativamente para a atividade em vez de voltar a ela por deixar outra atividade.
"stateAlwaysHidden" O teclado de software sempre estará oculto quando a janela principal da atividade tiver o foco de entrada.
"stateVisible" O teclado de software ficará visível quando isso for adequado (quando o usuário navegar para a janela principal da atividade).
"stateAlwaysVisible" O teclado de software ficará visível quando o usuário escolher a atividade — ou seja, quando o usuário navegar afirmativamente para a atividade em vez de voltar a ela por deixar outra atividade.
"adjustUnspecified" Não é especificado se a janela principal do aplicativo for redimensionada para criar espaço para o teclado de software ou se o conteúdo da janela for deslocado para o foco atual ficar visível na tela. O sistema selecionará automaticamente um desses modos, dependendo de o conteúdo da janela ter visualizações de layout que podem rolar seu conteúdo. Se houver uma dessas visualizações, a janela será redimensionada com base na suposição de que a rolagem permitirá a visualização do conteúdo da janela em uma área menor.

Essa é a configuração padrão para o comportamento da janela principal.

"adjustResize" A janela principal da atividade é sempre redimensionada para criar espaço para o teclado de software na tela.
"adjustPan" A janela principal da atividade não é redimensionada para criar espaço para o teclado de software na tela. Em vez disso, desloca-se o conteúdo da janela automaticamente para que o foco atual nunca seja sobreposto pelo teclado e os usuários possam sempre ver o que digitam. Normalmente, esse comportamento é menos desejável que o redimensionamento, pois o usuário pode precisar fechar o teclado de software para acessar e interagir com as partes sobrepostas da janela.

Esse atributo foi introduzido na API de nível 3.

introduzido na:
API de nível 1 para todos os atributos, exceto noHistory e windowSoftInputMode, adicionados na API de nível 3.
veja também:
<application>
<activity-alias>