Skip to content

Most visited

Recently visited

navigation

<activity>

sintaxis:
<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>
contenido en:
<application>
PUEDE CONTENER:
<intent-filter>
<meta-data>
descripción:
Declara una actividad (una subclase Activity) que implementa parte de la interfaz de usuario visual de la aplicación. Todas las actividades deben estar representadas por elementos <activity> en el archivo de manifiesto. El sistema no verá las que no estén declaradas en el archivo y nunca se ejecutarán.
atributos:
android:allowEmbedded
Indica que la actividad se puede iniciar como un campo secundario incorporado de otra actividad. Particularmente, cuando el campo secundario reside en un contenedor, como un Display perteneciente a otra actividad. Por ejemplo, las actividades empleadas en notificaciones personalizadas de Wear deben declararlo para que Wear pueda mostrar la actividad en el flujo de contexto, que reside en otro proceso.

El valor predeterminado de este atributo es false.

android:allowTaskReparenting
Define si la actividad puede pasar de la tarea que la inició a la tarea con la que tiene afinidad cuando dicha tarea se traiga a primer plano la próxima vez (“true” si es posible y “false” si debe permanecer con la tarea que la inició).

Si no se establece este atributo, se usará el valor del correspondiente atributo allowTaskReparenting del elemento <application> en la actividad. El valor predeterminado es “false”.

Por lo general, cuando se inicia una actividad, se la asocia a la tarea de la actividad que la inició y permanece allí durante todo su ciclo. Puedes usar este atributo para cambiar su campo primario a la tarea con la que tiene una afinidad cuando su tarea ya no se muestra. Generalmente, se usa para lograr que las actividades de una aplicación se trasladen a la tarea principal asociada a la aplicación.

Por ejemplo, si un mensaje de correo electrónico contiene un vínculo a una página web, se iniciará una actividad capaz de mostrar la página cuando se haga clic en el vínculo. La aplicación del navegador define la actividad, pero se lanza como parte de la tarea del correo electrónico. Si se cambia su campo primario a la tarea del navegador, se mostrará la próxima vez que el navegador se muestre en primer plano y estará ausente cuando la tarea del correo electrónico se vuelva a mostrar.

El atributo taskAffinity define la afinidad de una actividad. Para determinar la afinidad de una tarea, se lee la afinidad de su actividad raíz. Por lo tanto, por definición, una actividad raíz siempre se encuentra en una tarea con la misma afinidad. Dado que las actividades con modo de lanzamiento “singleTask” o “singleInstance” solo pueden estar en la raíz de una tarea, el cambio del campo primario a otra tarea se limita a los modos “standard” y “singleTop”. Consulta también el atributo launchMode.

android:alwaysRetainTaskState
Define si el sistema siempre conservará el estado de la tarea donde se encuentra la actividad: “true” si es así y “false” si el sistema puede restablecer el estado inicial de la tarea en situaciones particulares. El valor predeterminado es “false”. Este atributo solo servirá para la actividad raíz de la tarea; se ignorará en el resto de las actividades.

Normalmente, el sistema limpia una tarea (quita todas las actividades de la pila encima de la actividad raíz) en situaciones particulares cuando el usuario vuelve a seleccionar la tarea desde la pantalla de inicio. Por lo general, esto ocurre cuando el usuario no ha visitado la tarea por un tiempo, como 30 minutos.

Sin embargo, cuando este atributo sea “true”, los usuarios siempre regresarán a la tarea en su último estado, sin importar cómo hayan llegado a ella. Es útil, por ejemplo, en una aplicación, como un navegador web, con muchos estados (p. ej., varias pestañas abiertas) que los usuarios no quieren perder.

android:autoRemoveFromRecents
Define si las tareas ejecutadas por actividades con este atributo permanecen en la pantalla de información general hasta que se complete la última actividad de la tarea. Si es “true”, la tarea se quita automáticamente de la pantalla de información general. Anula el uso de FLAG_ACTIVITY_RETAIN_IN_RECENTS por parte del emisor. Debe ser un valor booleano: “true” o “false”.
android:banner
Un recurso de elemento de diseño que proporciona un banner gráfico extendido para el componente asociado. Se usa con la etiqueta <activity> para proporcionar un banner predeterminado a una actividad específica o con la etiqueta <application> para proporcionar un banner a todas las actividades de la aplicación.

El sistema usa el banner para representar una app en la pantalla de inicio de Android TV. Dado que el banner solo se muestra en la pantalla de inicio, solo deben especificarlo las aplicaciones con una actividad que controle la intent CATEGORY_LEANBACK_LAUNCHER.

Este atributo se debe establecer como una referencia a un recurso de elemento de diseño que contenga la imagen (por ejemplo, "@drawable/banner"). No hay ningún banner predeterminado.

Para obtener más información, consulta la sección de banners en la guía de diseño de patrones de IU para TV y Proporcionar un banner en la pantalla de inicio del documento Primeros pasos con apps para TV.

android:clearTaskOnLaunch
Define si todas las actividades se quitarán de la tarea, salvo la actividad raíz, cuando se vuelva a iniciar desde la pantalla de inicio (“true” si la tarea siempre se limpia hasta la actividad raíz y “false” si no es así). El valor predeterminado es “false”. Este atributo solo sirve para actividades que inician una tarea nueva (la actividad raíz); se ignora en el resto de las actividades de la tarea.

Cuando el valor es “true”, cada vez que los usuarios vuelven a iniciar la tarea, regresan a la actividad raíz independientemente de su última actividad en la tarea, y sin importar si usaron el botón Atrás o Inicio para salir. Cuando el valor es “false”, es posible borrar las actividades de la tarea en algunas situaciones (consulta el atributo alwaysRetainTaskState), pero no siempre.

Por ejemplo, supongamos que alguien inicia la actividad P desde la pantalla de inicio y, a continuación, pasa a la actividad Q. Después, el usuario presiona Inicio y regresa a la actividad P. Normalmente, el usuario vería la actividad Q, ya que es lo último que estaba haciendo en la tarea de P. Sin embargo, si P estableció este indicador en “true”, todas las actividades que le siguen (Q, en este caso) se quitaron cuando el usuario presionó Inicio y la tarea pasó a segundo plano. Por lo tanto, el usuario solo verá P cuando regrese a la tarea.

Si este atributo y allowTaskReparenting son “true”, todas las actividades cuyos campos primarios pueden cambiarse a otra tarea se trasladan a la tarea con afinidad. A continuación, se quita el resto de las actividades, como se describió anteriormente.

android:configChanges
Enumera los cambios de configuración que controlará la actividad. Cuando se produce un cambio de configuración en tiempo de ejecución, la actividad se cierra y reinicia de forma predeterminada. Sin embargo, si se declara una configuración con este atributo, la actividad no se reiniciará. En cambio, la actividad permanece en ejecución y se llama al método onConfigurationChanged().

Nota: Se recomienda evitar este atributo, y usarlo únicamente cuando sea el último recurso. Consulta Manejo de cambios en tiempo de ejecución para obtener más información sobre cómo manejar adecuadamente los reinicios debidos a cambios de configuración.

Todas las strings siguientes son valores válidos para este atributo. Los valores múltiples se separan con “|” (por ejemplo, “locale|navigation|orientation”).

Valor Descripción
mcc Ha cambiado el código móvil de país (MCC) de IMSI; se detectó una SIM y se actualizó el MCC.
mnc Ha cambiado el código de red móvil (MNC) de IMSI; se detectó una SIM y se actualizó el MCC.
locale Ha cambiado la configuración regional; el usuario seleccionó un nuevo idioma de texto.
touchscreen Ha cambiado la pantalla táctil (Normalmente, nunca debería pasar).
keyboard Ha cambiado el tipo de teclado; por ejemplo, el usuario conectó un teclado externo.
keyboardHidden Ha cambiado la accesibilidad del teclado; por ejemplo, el usuario expuso el teclado de hardware.
navigation Ha cambiado el tipo de navegación; bola de seguimiento o control de dirección. (Normalmente, nunca debería pasar).
screenLayout Ha cambiado el diseño de la pantalla; posiblemente porque se activó una pantalla distinta.
fontScale Ha cambiado el factor de escala de las fuentes (el usuario seleccionó un nuevo tamaño de fuente global).
uiMode Ha cambiado el modo de la interfaz de usuario; puede existir cuando el usuario ubica el dispositivo en un conector para autos o escritorio, o cuando cambia el modo noche. Consulta UiModeManager. Se agregó en el nivel de API 8.
orientation Ha cambiado la orientación de la pantalla; el usuario giró el dispositivo.

Nota: Si tu aplicación está orientada al nivel de API 13 o a niveles superiores (de acuerdo con la declaración de los atributos minSdkVersion y targetSdkVersion), también debes declarar la configuración de "screenSize" porque varía cuando un dispositivo pasa de la orientación vertical a la horizontal.

screenSize Ha cambiado el tamaño de la pantalla actualmente disponible. Representa un cambio en el tamaño actualmente disponible en función de la relación de aspecto actual. Por lo tanto, variará cuando el usuario alterne la orientación vertical y horizontal. Sin embargo, si tu aplicación está orientada al nivel de API 12 o a niveles inferiores, tu actividad siempre maneja este cambio de configuración por sí misma (este cambio de configuración no reinicia tu actividad, ni siquiera cuando se ejecuta en un dispositivo Android 3.2 o superior).

Se agregó en el nivel de API 13.

smallestScreenSize Ha cambiado el tamaño físico de la pantalla. Representa un cambio de tamaño independientemente de la orientación. Por lo tanto, solo cambiará cuando cambie el tamaño físico de la pantalla, como cuando se pasa a una pantalla externa. Los cambios en esta configuración corresponden a un cambio en la configuración smallestWidth. Sin embargo, si tu aplicación está orientada al nivel de API 12 o a niveles inferiores, tu actividad siempre maneja este cambio de configuración por sí misma (este cambio no reinicia tu actividad, ni siquiera cuando se ejecuta en un dispositivo con Android 3.2 o versiones posteriores).

Se agregó en el nivel de API 13.

layoutDirection Ha cambiado la dirección del diseño. Por ejemplo, cuando se cambia de izquierda a derecha (LTR) o derecha a izquierda (RTL). Se agregó en el nivel de API 17.

Todos estos cambios de configuración pueden influir en los valores de los recursos que detecta la aplicación. Por lo tanto, cuando se llame a onConfigurationChanged(), por lo general será necesario volver a obtener todos los recursos (incluso los diseños de vista, los elementos de diseño, etc.) para gestionar el cambio correctamente.

android:documentLaunchMode
Especifica la manera en que se debería agregar una nueva instancia de una actividad a una tarea cada vez que se inicia. Este atributo permite que el usuario pueda contar con varios documentos de la misma aplicación en la pantalla de información general.

Este atributo tiene cuatro valores que producen los siguientes efectos cuando el usuario abre un documento con la aplicación:

Valor Descripción
intoExisting La actividad reutiliza la tarea existente para el documento. Usar este valor equivale a establecer el indicadorFLAG_ACTIVITY_NEW_DOCUMENT, sin establecer el indicadorFLAG_ACTIVITY_MULTIPLE_TASK, como se describe en Uso del indicador de intent para agregar una tarea.
always La actividad crea una tarea nueva para el documento, incluso si este ya está abierto. Es lo mismo que establecer los indicadores FLAG_ACTIVITY_NEW_DOCUMENT y FLAG_ACTIVITY_MULTIPLE_TASK.
none La actividad no crea una tarea nueva para la actividad. Es el valor predeterminado, que crea una tarea nueva solo cuando se establece FLAG_ACTIVITY_NEW_TASK. En la pantalla de información general, la actividad recibe el mismo tratamiento que el predeterminado: se muestra una sola tarea para la app, la cual se reanuda desde la última actividad que el usuario invocó.
never Esta actividad no se envía a un documento nuevo, incluso si la intent contiene FLAG_ACTIVITY_NEW_DOCUMENT. La configuración de este valor reemplaza el comportamiento de los indicadores FLAG_ACTIVITY_NEW_DOCUMENT y FLAG_ACTIVITY_MULTIPLE_TASK si cualquiera de estos se fija en la actividad, y en la pantalla de información general se muestra una sola tarea para la app, que se reanuda desde la última actividad que el usuario invocó.

Nota: Para valores distintos de “none” y “never”, la actividad se debe definir con launchMode="standard". Si no se especifica este atributo, se usará documentLaunchMode="none".

android:enabled
Define si el sistema puede crear una instancia de la actividad (“"true"” si es posible y “false” si no lo es). El valor predeterminado es “true”.

El elemento <application> tiene su propio atributo enabled que sirve para todos los componentes de la aplicación, incluidas las actividades. Los atributos <application> y <activity> deben ser “true” (valor predeterminado de ambos) para que el sistema pueda crear una instancia de la actividad. Si alguno de ellos es “false”, no se podrá crear la instancia.

android:excludeFromRecents
Define si la tarea iniciada por esta actividad debería excluirse de la lista de aplicaciones recientemente usadas: la pantalla de información general. Es decir, cuando la actividad es la actividad raíz de una tarea nueva, este atributo determina si la tarea no debe aparecer en la lista de aplicaciones recientes. Establece el valor en “true” si la tarea debe excluirse de la lista; establece el valor en “false” si la tarea debería incluirse. El valor predeterminado es “false”.

android:exported
Define si la actividad puede iniciarse a través de componentes de otras aplicaciones; “true” si es posible y “false” si no lo es. Si es “false”, la actividad solo se podrá iniciar a través de componentes de la misma aplicación o de aplicaciones que tengan el mismo ID de usuario.

El valor predeterminado variará de acuerdo con los filtros de intents que tenga la actividad. La ausencia de filtros significa que la actividad solo se puede invocar si se especifica el nombre exacto de la clase. Esto quiere decir que la actividad solo está destinada al uso interno de la aplicación (dado que otras entidades no conocerán el nombre de la clase). Entonces, en este caso, el valor predeterminado es “false”. Por otro lado, la presencia de uno o más filtros implica que la actividad está destinada al uso externo; en consecuencia, el valor predeterminado es “true”.

Este atributo no es la única manera de limitar la exposición de la aplicación a otras aplicaciones. También puedes usar un permiso para limitar las entidades externas que pueden invocar a la actividad (consulta el atributo permission ).

android:finishOnTaskLaunch
Define si se debe cerrar (finalizar) una instancia existente de la actividad cuando el usuario vuelve a iniciar la tarea (selecciona la tarea en la pantalla de inicio). Será “true” si hay que cerrarla y “false” si no hay que hacerlo. El valor predeterminado es “false”.

Si este atributo y el atributo allowTaskReparenting son “true”, este atributo tiene prioridad sobre el otro. Se ignora la afinidad de la actividad. El campo primario de la actividad no se cambia a otra tarea; esta se destruye.

android:hardwareAccelerated
Define si se debe habilitar la representación acelerada por hardware para esta actividad (“true” si se debe habilitar y “false” si no se debe habilitar). El valor predeterminado es “false”.

A partir de Android 3.0, las aplicaciones disponen de un representador OpenGL acelerado por hardware para mejorar el rendimiento de varias operaciones comunes de gráficos 2D. Cuando se habilita el representador acelerado por hardware, la mayoría de las operaciones en Canvas, Paint, Xfermode, ColorFilter, Shader y Cámara se aceleran. Como resultado, se obtienen animaciones y desplazamientos más dinámicos, y una capacidad de respuesta mejorada a nivel general, incluso para aplicaciones que no hacen uso explícito de las bibliotecas OpenGL del framework. Debido al aumento de recursos requerido para habilitar la aceleración de hardware, tu app consumirá más memoria RAM.

Ten en cuenta que no se pueden acelerar todas las operaciones 2D de OpenGL. Si habilitas el representador acelerado por hardware, prueba tu aplicación para asegurarte de que puede usar el representador sin generar errores.

android:icon
Un ícono que representa una actividad. El ícono se muestra a los usuarios cuando se requiere una representación de la actividad en la pantalla. Por ejemplo, los íconos de actividades que inician tareas se muestran en la ventana del lanzador. A menudo, el ícono incluye una etiqueta (consulta el atributo android:label).

Este atributo se debe establecer como una referencia a un recurso de elemento de diseño que contenga la definición de la imagen. Si no se establece, se usa en su lugar el ícono especificado para toda la aplicación (consulta el atributo icon del elemento <application>).

El ícono de la actividad (el que se establece aquí o mediante el elemento <application> ) también es el ícono predeterminado de todos los filtros de intents de la actividad (consulta el atributo icon del elemento <intent-filter>).

android:label
Etiqueta de la actividad que los usuarios pueden leer. Se muestra en pantalla cuando se debe representar la actividad al usuario. Por lo general, se muestra junto al ícono de la actividad.

Si este atributo no se establece, la etiqueta definida para toda la aplicación se usa en su lugar (consulta el atributo label del elemento <application>).

La etiqueta de la actividad (la que se establece aquí o mediante el elemento <application>) también es la etiqueta predeterminada de todos los filtros de intents de la actividad (consulta el atributo label del elemento <intent-filter>).

La etiqueta se debe establecer como una referencia a un recurso de string para que se pueda localizar como otras strings en la interfaz de usuario. Sin embargo, también se puede establecer como una string sin procesar para que sea más fácil durante el desarrollo de la aplicación.

android:launchMode
Instrucción para el inicio de una actividad. Existen cuatro modos que funcionan junto a los indicadores de actividad (constantes FLAG_ACTIVITY_*) en objetos Intent para determinar lo que debe ocurrir cuando se llama a la actividad para controlar una intent. Estos son los cuatro modos:

standard
singleTop
singleTask
singleInstance

El modo predeterminado es “standard”.

Como se muestra en la siguiente tabla, los modos entran en dos grupos principales: las actividades “standard” y “singleTop” por un lado, y las actividades “singleTask” y “singleInstance” por el otro. Se pueden crear varias instancias de las actividades con modo de lanzamiento “standard” o “singleTop”. Las instancias pueden pertenecer a cualquier tarea y pueden ubicarse en cualquier lugar de la pila de actividades. Por lo general, se inician en la tarea que llamó a startActivity(), a menos que el objeto intent contenga una instrucción FLAG_ACTIVITY_NEW_TASK. Si es así, se elegirá una tarea diferente (consulta el atributo taskAffinity).

En cambio, las actividades “singleTask” y “singleInstance” solo pueden iniciar una tarea. Siempre se encuentran en la raíz de la pila de actividades. Además, el dispositivo solo puede manejar una instancia de la actividad al mismo tiempo; solo una de dicha tarea.

Los modos “standard” y “singleTop” difieren uno del otro en solo un aspecto: Cada vez que hay una nueva intent para una actividad “standard”, se crea una nueva instancia de la clase para responder a la intent. Cada instancia maneja una sola intent. De forma similar, también se puede crear una nueva instancia de una actividad “singleTop” para manejar una nueva intent. Sin embargo, si la tarea de destino ya cuenta con una instancia de la actividad en la parte superior de la pila, la instancia recibirá la nueva intent (en una llamada a onNewIntent()); no se creará una nueva instancia. En otras circunstancias (por ejemplo, si una instancia existente de la actividad “singleTop” se encuentra en la tarea de destino, pero no en la parte superior de la pila, o si se encuentra en la parte superior de la pila, pero no en la tarea de destino), se creará una nueva instancia y se la incorporará a la pila.

De forma similar, si navegas hacia arriba a una actividad en la pila actual, el modo de lanzamiento de la actividad principal determinará el comportamiento. Si el modo de lanzamiento de la actividad principal es singleTop (o la intent up contiene FLAG_ACTIVITY_CLEAR_TOP), el componente principal se traslada a la parte superior de la pila y su estado se conserva. El método onNewIntent() de la actividad principal recibe a la intent de navegación. Si el modo de lanzamiento de la actividad principal es standard (y la intent up no contiene FLAG_ACTIVITY_CLEAR_TOP), se quitan de la pila la actividad actual y a su componente principal, y se crea una nueva instancia de la actividad principal para recibir a la intent de navegación.

Los modos “singleTask” y “singleInstance” también difieren uno del otro en un solo aspecto: Una actividad “singleTask” permite que otras formen parte de su tarea. Siempre está en la raíz de su tarea, pero otras actividades (que deben ser “standard” y “singleTop”) se pueden iniciar en dicha tarea. Una actividad “singleInstance”, en cambio, no permite que otras actividades formen parte de su tarea. Es la única actividad de la tarea. Si inicia otra actividad, ésta se asignará a otra tarea; como si FLAG_ACTIVITY_NEW_TASK estuviera en la intent.

Casos de uso Modo de lanzamiento ¿Varias instancias? Comentarios
Lanzamientos convencionales para la mayoría de las actividades standard Predeterminado. El sistema siempre crea una nueva instancia de la actividad en la tarea destino y direcciona la intent hacia ella.
singleTop Condicionalmente Si una instancia de la actividad ya existe al comienzo de la tarea de destino, el sistema direcciona la intent hacia dicha instancia mediante un llamado a su método onNewIntent() en lugar de crear una nueva instancia de la actividad.
Lanzamientos especiales
(no se recomienda para usos generales)
singleTask No El sistema crea la actividad en la raíz de una tarea nueva y direcciona la intent hacia ella. Sin embargo, si ya existe una instancia de la actividad, el sistema direcciona la intent hacia la instancia existente mediante una llamada a su método onNewIntent() en lugar de crear una nueva.
singleInstance No Es igual que “singleTask", con la excepción de que el sistema no lanza otras actividades en la tarea que contiene la instancia. La actividad siempre es el único miembro de su tarea.

Como se mostró en la tabla anterior, standard es el modo predeterminado y es adecuado para la mayoría de los tipos de actividades. SingleTop también es un modo de lanzamiento convencional y útil para muchos tipos de actividades. Los otros modos, singleTask y singleInstance, no son apropiados para la mayoría de las aplicaciones ya que generan un modelo de interacción probablemente poco familiar para los usuarios y muy diferente de otras aplicaciones.

Independientemente del modo de lanzamiento que elijas, asegúrate de probar la usabilidad de la actividad durante el lanzamiento, y cuando regreses a ella desde otras actividades y tareas después de presionar el botón Atrás.

Para obtener más información sobre los modos de lanzamiento y su interacción con indicadores de intents, consulta el documento sobre tareas y pila de retroceso.

android:maxRecents
Cantidad máxima de tareas que tienen la raíz en esta actividad en la pantalla de información general. Cuando se alcanza esta cantidad de entradas, el sistema quita la instancia que se usó con mayor anterioridad de la pantalla de información general. Los valores válidos van del 1 al 50 (25 en dispositivos con poca memoria); cero no es un valor válido. Debe ser un valor entero, como 50. El valor predeterminado es 16.
android:multiprocess
Define si se puede lanzar una instancia de la actividad en el proceso del componente que la inició (“true” si es posible y “false” si no lo es). El valor predeterminado es “false”.

Por lo general, una nueva instancia de una actividad se lanza en el proceso de la aplicación que la definió; por lo tanto, todas las instancias de la actividad se ejecutan en el mismo proceso. Sin embargo, si este indicador se establece en “true”, las instancias de la actividad se pueden ejecutar en varios procesos. En consecuencia, el sistema puede crear instancias en cualquier lugar en el que se usen (siempre y cuando los permisos lo permitan). Esto casi nunca es necesario o deseable.

android:name
Nombre de la clase que implementa a la actividad; una subclase de Activity. El valor del atributo debe ser un nombre de clase completamente calificado (como “com.example.project.ExtracurricularActivity”). Sin embargo, como atajo, si el primer carácter del nombre es un punto (por ejemplo, “.ExtracurricularActivity”), se agregará al nombre del paquete especificado en el elemento <manifest>.

Cuando publiques tu aplicación, no debes cambiar este nombre (salvo que hayas fijado android:exported="false").

No hay ningún valor predeterminado. Se debe especificar el nombre.

android:noHistory
Define si se debe quitar la actividad de la pila de actividades y finalizarla (llamar al método finish()) cuando el usuario salga de la actividad y no se muestre en pantalla (“true” si se debe finalizar y “false” si no se debe finalizar). El valor predeterminado es “false”.

Si el valor es “true”, la actividad no dejará un seguimiento histórico. No permanecerá en la pila de actividades de la tarea; el usuario no podrá regresar a ella. En este caso, nunca se llamará a onActivityResult() si inicias otra actividad para un resultado de esta actividad.

Este atributo se agregó en el nivel de API 3.

android:parentActivityName
Nombre de clase del componente principal lógico de la actividad. El nombre debe coincidir con el nombre de clase otorgado al correspondiente atributo android:name del elemento <activity>.

El sistema lee este atributo para determinar la actividad que se debe iniciar cuando el usuario presiona el botón Up de la barra de acciones. El sistema también puede usar esta información para sintetizar una pila de retroceso de actividades con TaskStackBuilder.

Para ofrecer compatibilidad con los niveles de API 4 a 16, puedes declarar la actividad principal con un elemento <meta-data> que especifique un valor para "android.support.PARENT_ACTIVITY". Por ejemplo:

<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 obtener más información sobre la declaración de la actividad principal y admitir la navegación hacia arriba, consulta el documento sobre Cómo proporcionar navegación hacia arriba.

Este atributo se agregó en el nivel de API 16.

android:permission
Nombre del permiso que los clientes deben tener para poder iniciar la actividad , o para que la actividad responda a una intent. Si el emisor de startActivity() o startActivityForResult() no recibió el permiso especificado, su intent no se entregará a la actividad.

Si no se establece este atributo, se usará el permiso establecido por el atributo permission del elemento <application> en la actividad. Si no se establece ninguno de los atributos, la actividad no contará con protección de de un permiso.

Para obtener más información sobre los permisos, consulta la sección sobre permisos en la introducción y el documento sobre seguridad y permisos.

android:process
Nombre del proceso en el cual la actividad debe ejecutarse. Por lo general, todos los componentes de una aplicación se ejecutan en un nombre de proceso predeterminado que crea esta y no hace falta que uses este atributo. Pero si es necesario, puedes anular el nombre de proceso predeterminado con este atributo. De esta forma, podrás usar los componentes de tu app en varios procesos.

Si el nombre asignado a este atributo comienza con dos puntos (“:”), se creará un proceso nuevo, privado a la aplicación, cuando sea necesario y la actividad se ejecutará en dicho proceso. Si el nombre del proceso comienza con un carácter en minúscula, la actividad se ejecutará en un proceso global con dicho nombre (siempre y cuando tenga permiso para hacerlo). Esto permite que los componentes de diferentes aplicaciones compartan un proceso y, de este modo, disminuye el uso de recursos.

El atributo process del elemento <application> puede establecer otro nombre de proceso predeterminado para todos los componentes.

android:relinquishTaskIdentity
Define si la actividad cede sus identificadores de tarea a una actividad superior en la pila de tareas. Una tarea cuya actividad raíz haya establecido este atributo en “true” reemplaza la intent base por la de la próxima actividad de la tarea. Si la próxima actividad también estableció este atributo en “true”, cederá la intent base a cualquier actividad que inicie en la misma tarea. Este proceso continuará en todas las actividades hasta que se encuentre una actividad con el atributo en “false”. El valor predeterminado es “false”.

Cuando este atributo es “true”, la actividad también puede usar ActivityManager.TaskDescription para cambiar las etiquetas, los colores y los íconos en la pantalla de información general.

resizeableActivity

Especifica si la app admite la visualización de ventanas múltiples. Puedes fijar este atributo en el elemento <activity> o el elemento <application> .

Si fijas este atributo como “true”, el usuario podrá iniciar la actividad en los modos de pantalla dividida y de forma libre. Si fijas este atributo en “false”, la actividad no admitirá el modo de ventanas múltiples. Si el valor es false, y el usuario intenta iniciar la actividad en modo de ventanas múltiples, la actividad ocupará toda la pantalla.

Si tu app está orientada al nivel de API 24 o a niveles superiores, pero no especificas un valor para este atributo, el valor predeterminado del atributo será “true”.

Este atributo se agregó en nivel de API 24.

android:screenOrientation
Define la orientación en la que se mostrará la actividad en el dispositivo. El sistema ignora este atributo si la actividad se ejecuta en modo de ventanas múltiples.

El valor puede ser una de las siguientes strings:

unspecified Valor predeterminado. El sistema selecciona la orientación. La política que usa (y en consecuencia, las elecciones que realiza en contextos específicos) puede variar de un dispositivo a otro.
behind La misma orientación de la actividad inmediatamente debajo de ella en la pila de actividades.
landscape Orientación horizontal (la pantalla es más ancha que alta).
portrait Orientación vertical (la pantalla es más alta que ancha).
"reverseLandscape" Orientación horizontal en la dirección opuesta al modo horizontal convencional. Se agregó en nivel de API 9.
reversePortrait Orientación vertical en la dirección opuesta al modo vertical convencional. Se agregó en nivel de API 9.
sensorLandscape Orientación horizontal, pero puede ser modo horizontal convencional o inverso según el sensor del dispositivo. Se agregó en nivel de API 9.
sensorPortrait Orientación vertical, pero puede ser modo vertical convencional o inverso según el sensor del dispositivo. Se agregó en nivel de API 9.
userLandscape Orientación horizontal, pero puede ser modo horizontal convencional o inverso según el sensor del dispositivo y la preferencia del usuario con respecto al sensor. Si el usuario bloqueó la rotación definida por sensor, este valor funciona igual que landscape. De lo contrario, se comporta igual que sensorLandscape. Se agregó en el nivel de API 18.
userPortrait Orientación vertical, pero puede ser modo vertical convencional o inverso según el sensor del dispositivo y la preferencia del usuario con respecto al sensor. Si el usuario bloqueó la rotación definida por sensor, este valor funciona igual que portrait. De lo contrario, se comporta igual que sensorPortrait. Se agregó en el nivel de API 18.
sensor El sensor de orientación del dispositivo determina la orientación. La orientación de la pantalla depende de cómo el usuario sostiene el dispositivo. Cambia cuando el usuario gira el dispositivo. Sin embargo, algunos dispositivos no rotarán en las cuatro orientaciones posibles de forma predeterminada. Para permitir la rotación en las cuatro orientaciones, usa "fullSensor".
fullSensor El sensor de orientación del dispositivo determina la orientación para cualquiera de las 4 orientaciones. Es similar a "sensor", con la excepción de que aquí se permite cualquiera de las cuatro posibles orientaciones de pantalla, independientemente del comportamiento normal del dispositivo (por ejemplo, algunos dispositivos no usan normalmente los modos vertical inverso u horizontal inverso, pero este valor los habilita). Se agregó en el nivel de API 9.
nosensor La orientación se determina sin hacer referencia a un sensor de orientación físico. Se ignora el sensor; en consecuencia, la pantalla rotará independientemente del movimiento del usuario. Salvo por esta diferencia, el sistema elige la orientación con la misma política de la configuración “unspecified”.
user La orientación que prefiere el usuario actualmente.
fullUser Si el usuario bloquea la rotación definida por sensor, este valor funciona igual que user. De lo contrario, se comporta igual que fullSensor y admite cualquiera de las cuatro posibles orientaciones de pantalla. Se agregó en el nivel de API 18.
locked Bloquea la orientación en la rotación actual, sin importar la que sea. Se agregó en nivel de API 18.

Nota: Cuando declaras uno de los valores horizontales o verticales, se considera un requisito obligatorio de la orientación de la actividad. En consecuencia, el valor que declares permitirá que distintos servicios, como Google Play, apliquen filtros a fin de que tu aplicación esté disponible únicamente para dispositivos que admitan la orientación de tus actividades. Por ejemplo, si declaras "landscape", "reverseLandscape" o "sensorLandscape", tu aplicación solo estará disponible únicamente para dispositivos que admitan orientación horizontal. Sin embargo, también debes declarar explícitamente que tu aplicación requiere orientación vertical u horizontal con el elemento <uses-feature>. Por ejemplo, <uses-feature android:name="android.hardware.screen.portrait"/>. Solo se trata de un comportamiento de filtrado que proporciona Google Play (también lo ofrecen otros servicios que lo admiten). La plataforma no controla si tu app se puede instalar cuando un dispositivo solo admite ciertas orientaciones.

android:stateNotNeeded
Define si la actividad se puede finalizar y reiniciar correctamente sin haber guardado el estado (“true” si se puede reiniciar sin referencia a su estado anterior y “false” si es necesario conocer su estado anterior). El valor predeterminado es “false”.

Por lo general, antes de cerrar temporalmente una actividad para ahorrar recursos, se llama a su método onSaveInstanceState(). Este método almacena el estado actual de la actividad en un objeto Bundle, que luego se pasa a onCreate() cuando se reinicia la actividad. Si este atributo es “true”, no se llamará a onSaveInstanceState() y se pasará null a onCreate() en lugar de Bundle (como cuando la actividad se inicia por primera vez).

Si la configuración es “true”, se garantiza que la actividad se podrá reiniciar sin contar con el estado almacenado. Por ejemplo, la actividad que muestra la pantalla de inicio usa esta configuración para asegurarse de que no se quitará si falla por alguna razón.

supportsPictureInPicture

Especifica si la actividad admite pantallas Picture-in-Picture. El sistema ignora este atributo si android:resizeableActivity es falso.

Este atributo se agregó en nivel de API 24.

android:taskAffinity
Define la tarea con la cual la actividad tendrá afinidad. En concepto, las actividades con la misma afinidad pertenecen a la misma tarea (a la misma “aplicación”, desde la perspectiva del usuario). La afinidad de la actividad raíz define la afinidad de la tarea.

La afinidad determina dos cosas: la tarea a la cual se cambia el campo primario de su actividad (consulta el atributoallowTaskReparenting) y la tarea que albergará a la actividad cuando se inicie con el indicador FLAG_ACTIVITY_NEW_TASK.

De forma predeterminada, todas las actividades de una aplicación tienen la misma afinidad. Puedes establecer este atributo para agruparlas de forma diferente e incluso disponer actividades definidas en distintas aplicaciones dentro de la misma tarea. Para especificar que la actividad no tiene afinidad a ninguna tarea, establece una string vacía.

Si no se establece este atributo, la actividad hereda la afinidad fijada para la aplicación (consulta el atributo taskAffinity del elemento <application>). El nombre de la afinidad predeterminada de una aplicación es el nombre del paquete establecido por el elemento <manifest>.

android:theme
Referencia a un recurso de estilo que define un tema general para la actividad. Establece automáticamente el contexto de la actividad para el uso de este tema (consulta setTheme()) y también puede generar animaciones de “inicio” antes del lanzamiento de la actividad (para una mejor adecuación a la apariencia real de la actividad).

Si no se establece este atributo, la actividad hereda el tema general de la aplicación (del atributo theme del elemento <application>). Si tampoco se establece este atributo, se usa el tema del sistema predeterminado. Para obtener más información, consulta la guía Estilos y temas para desarrolladores.

android:uiOptions
Opciones adicionales para la IU de una actividad.

Debe ser uno de los siguientes valores.

ValorDescripción
"none"Ninguna opción adicional para la IU. Es el valor predeterminado.
"splitActionBarWhenNarrow"Agrega una barra al pie de la pantalla para mostrar elementos de acción en la barra de la app (también conocida como la barra de acciones) cuando hay poco espacio horizontal (como en el modo de retrato de un teléfono celular). En lugar de mostrar una pequeña cantidad de elementos de acción en la barra de la app de la parte superior de la pantalla, la barra de la app se divide en la sección de navegación superior y la barra inferior para elementos de acción. De esta forma, se garantiza la disponibilidad de una cantidad razonable de espacio únicamente para los elementos de acción, aunque también para elementos de navegación y títulos en la parte superior. Los elementos de los menús no se dividen en las dos barras; siempre aparecen juntos.

Para obtener más información sobre la barra de la app, consulta la clase de capacitación Adición de la barra de app.

Este atributo se agregó en nivel de API 14.

android:windowSoftInputMode
Modo en que interactúa la ventana principal de la actividad con la ventana que contiene el teclado de software en pantalla. La configuración de este atributo influye en dos aspectos:
  • El estado del teclado de software (oculto o visible) cuando la actividad ocupa el centro de la atención del usuario.
  • El ajuste de la ventana principal de la actividad (si se reduce el tamaño para hacer lugar al teclado de software o si su contenido se desplaza para hacer visible el punto de foco actual cuando el teclado de software cubra parte de la ventana).

La configuración debe ser uno de los valores que se enumeran en la siguiente tabla o una combinación de un valor “state...” y un valor “adjust...”. Si se establecen varios valores en cualquiera de los grupos (varios valores “state...”, por ejemplo), los resultados serán indefinidos. Cada valor se separa con una barra vertical (|). Por ejemplo:

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

Los valores que se establezcan aquí (que no sean “stateUnspecified” y “adjustUnspecified”) anulan los valores establecidos en el tema.

Valor Descripción
stateUnspecified No se especifica el estado del teclado de software (oculto o visible). El sistema elegirá un estado adecuado o usará la configuración del tema.

Esta es la configuración predeterminada para el comportamiento del teclado de software.

stateUnchanged El teclado de software se mantiene en su último estado visible u oculto, cuando la actividad pasa a primer plano.
stateHidden El teclado de software se oculta cuando el usuario elige la actividad; es decir, cuando el usuario navega explícitamente hacia la actividad en lugar de regresar a ella desde otra.
stateAlwaysHidden El teclado de software siempre está oculto cuando la ventana principal de la actividad tiene foco de entrada.
stateVisible El teclado de software es visible cuando normalmente corresponde (cuando el usuario navega hacia la ventana principal de la actividad).
stateAlwaysVisible El teclado de software es visible cuando el usuario elige la actividad; es decir, cuando el usuario navega explícitamente hacia la actividad en lugar de regresar a ella desde otra.
adjustUnspecified No se especifica si la ventana principal de la actividad cambia de tamaño para hacer lugar al teclado de software o si los contenidos de la ventana se desplazan para que el foco actual sea visible en la pantalla. El sistema seleccionará automáticamente uno de estos modos según el contenido de la ventana cuente con vistas de diseño con capacidad de desplazamiento para sus contenidos. Si cuenta con estas vistas, la ventana cambiará de tamaño porque se presupone que el desplazamiento permitirá que todos los contenidos de la ventana sean visibles en un área más pequeña.

Esta es la configuración predeterminada para el comportamiento de la ventana principal.

adjustResize Siempre se cambia el tamaño de la ventana principal de la actividad para hacer lugar al teclado de software en la pantalla.
adjustPan La ventana principal de la actividad no cambia de tamaño para hacer lugar al teclado de software. En cambio, los contenidos de la ventana se desplazan automáticamente para que el teclado nunca obstruya el punto de foco actual y los usuarios siempre puedan ver lo que escriben. Por lo general, esto es menos conveniente que cambiar el tamaño porque el usuario puede necesitar cerrar el teclado de software para acceder a las partes obstruidas de la ventana e interactuar con ellas.

Este atributo se agregó en el nivel de API 3.

presentado en:
Nivel de API 1 para todos los atributos, salvo para noHistory y windowSoftInputMode, que se agregaron en nivel de API 3.
consulta también:
<application>
<activity-alias>
This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.