- sintaxis:
<receiver android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </receiver>
- se incluye en:
<application>
- puede contener:
<intent-filter>
<meta-data>
- descripción:
- Declara un receptor de emisión (una subclase
BroadcastReceiver
) como uno de los componentes de la aplicación. Los receptores de emisión permiten que las aplicaciones reciban intents que transmiten el sistema y otras aplicaciones, incluso cuando otros componentes de la aplicación no se están ejecutando.Existen dos maneras de dar a conocer un receptor de emisión al sistema. Uno es declararlo en el archivo de manifiesto con este elemento. La otra es crear el receptor dinámicamente en el código y registrarlo con el método
Context.registerReceiver()
o una de sus versiones sobrecargadas.Si quieres obtener más información para crear receptores dinámicamente, consulta la descripción de la clase
BroadcastReceiver
.Si este receptor controla emisiones que no son del sistema, especifica un valor para
android:exported
. Establece este valor en"true"
si deseas que tu receptor pueda recibir emisiones de otras aplicaciones, o bien en"false"
si solo deseas que tu receptor pueda recibir emisiones de tu propia app.No es necesario quitar el atributo
android:permission
si ya lo declaraste.Advertencia: Limita la cantidad de receptores de emisión que configuras en tu app. Tener demasiados puede afectar su rendimiento y también la duración de batería de los dispositivos de los usuarios. Si quieres más información sobre las APIs que puedes usar en lugar de la clase
BroadcastReceiver
para programar el trabajo en segundo plano, consulta Optimización en segundo plano. - atributos:
android:directBootAware
Indica si el receptor de emisión reconoce el inicio directo, es decir, si puede ejecutarse antes de que el usuario desbloquee el dispositivo.
Nota: Durante el modo de inicio directo, un receptor de emisión en tu aplicación solo puede acceder a los datos almacenados en el espacio de almacenamiento protegido del dispositivo.
El valor predeterminado es
"false"
.android:enabled
- Indica si el sistema puede crear una instancia del receptor de emisión. Es
"true"
si es posible y"false"
si no lo es. El valor predeterminado es"true"
.El elemento
<application>
tiene su propio atributoenabled
que se aplica a todos los componentes de la aplicación, incluidos los receptores de emisión. Los atributos<application>
y<receiver>
deben ser"true"
para que se habilite el receptor de emisión. Si alguno es"false"
, está inhabilitado y no se puede crear la instancia. android:exported
- Indica si el receptor de emisión puede recibir mensajes de fuentes ajenas al sistema fuera de su aplicación. Es
"true"
si es posible y"false"
si no lo es. Si es"false"
, los únicos mensajes que recibe el receptor de emisión son los que envía el sistema, los componentes de la misma aplicación o las aplicaciones con el mismo ID de usuario.Si no se especifica, el valor predeterminado depende de si el receptor de emisión contiene filtros de intents. Si el receptor contiene al menos un filtro de intents, el valor predeterminado es
"true"
. De lo contrario, el valor predeterminado es"false"
.Este atributo no es la única forma de limitar la exposición externa de un receptor de emisión. También puedes usar un permiso para limitar las entidades externas que pueden enviarle mensajes. Consulta el atributo
permission
. android:icon
- Es un ícono que representa al receptor de emisión. Este atributo se establece como referencia a un recurso de elementos de diseño que contiene la definición de la imagen.
Si no está configurado, en su lugar se usa el ícono especificado para toda la aplicación. Consulta el atributo
icon
del elemento<application>
.El ícono del receptor de emisión, ya sea que se configure aquí o lo configure el elemento
<application>
, también es el predeterminado para todos los filtros de intents del receptor. Consulta el atributoicon
del elemento<intent-filter>
. android:label
- Es una etiqueta legible por el usuario para el receptor de emisión. Si no se establece este atributo, en su lugar se usa la etiqueta configurada para toda la aplicación. Consulta el atributo
label
del elemento<application>
.La etiqueta del receptor de emisión, ya sea que se configure aquí o la configure el elemento
<application>
, también es la predeterminada para todos los filtros de intents del receptor. Consulta el atributolabel
del elemento<intent-filter>
.La etiqueta se establece como una referencia a un recurso de cadenas, de manera que pueda localizarse como otras cadenas de la interfaz de usuario. Sin embargo, para tu conveniencia durante el desarrollo de la aplicación, también se puede establecer como cadena sin procesar.
android:name
- Es el nombre de la clase que implementa el receptor de emisión, una subclase de
BroadcastReceiver
. Este es un nombre de clase completamente calificado, como"com.example.project.ReportReceiver"
. Sin embargo, como atajo, si el primer carácter del nombre es un punto (por ejemplo,".ReportReceiver"
), se agregará al nombre del paquete especificado en el elemento<manifest>
.Una vez que publiques tu aplicación, no cambies este nombre, a menos que configures
android:exported="false"
.No hay ningún valor predeterminado. Se debe especificar el nombre.
android:permission
- Es el nombre de un permiso que las emisoras necesitan para enviar un mensaje al receptor de emisión.
Si no se establece este atributo, se usará el permiso establecido por el atributo
permission
del elemento<application>
en el receptor de emisión. Si no se establece ninguno de los atributos, el receptor no estará protegido por un permiso.Si deseas obtener más información sobre los permisos, consulta la sección Permisos en la descripción general del manifiesto de la app y las Sugerencias de seguridad.
android:process
- Es el nombre del proceso en el que se ejecuta el receptor de emisión.
Por lo general, todos los componentes de una aplicación se ejecutan en el proceso predeterminado creado para ella. Tiene el mismo nombre que el paquete de la aplicación.
El atributo
process
del elemento<application>
puede establecer un valor predeterminado diferente para todos los componentes. Sin embargo, cada componente puede anular el valor predeterminado con su propio atributoprocess
, lo que te permite repartir tu aplicación entre varios procesos.Si el nombre asignado a este atributo comienza con dos puntos (
:
), cuando es necesario, se crea un nuevo proceso, privado para la aplicación, y el receptor de emisión se ejecuta en ese proceso.Si el nombre del proceso comienza con un carácter en minúscula, el receptor se ejecutará en un proceso global con ese nombre, siempre que tenga permiso para hacerlo. Esto permite que los componentes de diferentes aplicaciones compartan un mismo proceso y reduzcan de esa forma el uso de recursos.
- primera inclusión:
- Nivel de API 1
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2024-08-22 (UTC)
[null,null,["Última actualización: 2024-08-22 (UTC)"],[],[]]