- Sintaxe:
<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>
- contido em:
<application>
- pode conter:
<intent-filter>
<meta-data>
- descrição:
- Declara um broadcast receiver, uma subclasse de
BroadcastReceiver
, como um dos componentes do aplicativo. Os broadcast receivers permitem que os aplicativos recebam intents transmitidas pelo sistema ou por outros aplicativos, mesmo quando outros componentes do aplicativo não estão em execução.Há duas maneiras de tornar um broadcast receiver conhecido pelo sistema. Uma delas é declará-lo no arquivo de manifesto com esse elemento. A outra é criar o receiver de modo dinâmico no código e registrá-lo com o método
Context.registerReceiver()
ou uma das versões sobrecarregadas dele.Para mais informações sobre como criar broadcast receivers dinamicamente, consulte a descrição da classe
BroadcastReceiver
.Se o broadcast receiver processa transmissões que não são do sistema, especifique um valor para
android:exported
. Defina esse valor como"true"
, se quiser que o receiver possa receber transmissões de outros aplicativos, ou"false"
, se quiser que ele só receba transmissões do seu próprio app.Não é necessário remover o atributo
android:permission
se ele já foi declarado.Aviso: limite o número de broadcast receivers que você vai definir no app. Ter muitos broadcast receivers pode afetar o desempenho do app e a duração da bateria dos dispositivos dos usuários. Para saber mais sobre APIs que você pode usar no lugar da classe
BroadcastReceiver
para agendar trabalhos em segundo plano, consulte Otimizações em segundo plano. - Atributos:
android:directBootAware
Define se o broadcast receiver tem reconhecimento de inicialização direta, ou seja, se ele pode ser executado antes do usuário desbloquear o dispositivo.
Observação: durante a inicialização direta, um broadcast receiver no app só pode acessar os dados que estejam em armazenamento protegido do dispositivo.
O valor padrão é
"false"
.android:enabled
- Define se o broadcast receiver pode ou não ser instanciado pelo sistema. Será
"true"
, se isso for possível, e"false"
, se não for. O valor padrão é"true"
.O elemento
<application>
tem o próprio atributoenabled
, que é usado em todos os componentes do app, incluindo os broadcast receivers. Os atributos<application>
e<receiver>
precisam ser"true"
para que o broadcast receiver seja ativado. Se um deles for"false"
, o receiver será desativado e não vai poder ser instanciado. android:exported
- Define se o broadcast receiver pode receber mensagens de origens que não são do sistema
fora do aplicativo. Será
"true"
, se isso for possível, e"false"
, se não for. Se for"false"
, as únicas mensagens recebidas pelo broadcast receiver serão aquelas enviadas pelo sistema, por componentes do mesmo aplicativo ou por aplicativos com o mesmo ID de usuário.Se não for especificado, o valor padrão vai depender da presença de filtros de intent no broadcast receiver. Se o receptor tiver pelo menos um filtro de intent, o valor padrão será
"true"
. Caso contrário, o valor padrão será"false"
.Esse atributo não é a única maneira de limitar a exposição externa de um broadcast receiver. Também é possível usar uma permissão para limitar as entidades externas que podem enviar mensagens a ele. Consulte o atributo
permission
. android:icon
- Um ícone que representa o broadcast receiver. Esse atributo é definido
como uma referência a um recurso drawable que contém a definição da imagem.
Se ele não for definido, será usado o ícone especificado para o aplicativo como
um todo. Consulte o atributo
icon
do elemento<application>
.O ícone do broadcast receiver, definido aqui ou pelo elemento
<application>
, também é o ícone padrão de todos os filtros de intent do receiver. Consulte o atributoicon
do elemento<intent-filter>
. android:label
- Um rótulo legível pelo usuário para o broadcast receiver. Se esse atributo não for
definido, será usado o rótulo definido para o aplicativo como
um todo. Consulte o atributo
label
do elemento<application>
.O rótulo do broadcast receiver, definido aqui ou pelo elemento
<application>
, também é o rótulo padrão para todos os filtros de intent do receiver. Consulte o atributolabel
do elemento<intent-filter>
.O rótulo é definido como uma referência a um recurso de string para que ele possa ser localizado como outras strings da interface do usuário. No entanto, para facilitar o desenvolvimento do aplicativo, ele também pode ser definido como uma string bruta.
android:name
- O nome da classe que implementa o broadcast receiver, uma subclasse de
BroadcastReceiver
. Esse é um nome de classe totalmente qualificado, como"com.example.project.ReportReceiver"
. No entanto, como abreviação, se o primeiro caractere do nome for um ponto (por exemplo,".ReportReceiver"
), ele será anexado ao nome do pacote especificado no elemento<manifest>
.Depois de publicar o aplicativo, não mude esse nome (link em inglês), a menos que você defina
android:exported="false"
.Não há padrão. O nome precisa ser especificado.
android:permission
- O nome de uma permissão de que os transmissores precisam para enviar uma
mensagem ao broadcast receiver.
Se o atributo não for definido, a permissão definida pelo
atributo
permission
do elemento<application>
será ativada no broadcast receiver. Se nenhum atributo for definido, nenhuma permissão vai proteger o receiver.Para saber mais sobre permissões, consulte a seção Permissões na visão geral do manifesto do app e as Dicas de segurança.
android:process
- O nome do processo em que o broadcast receiver é executado.
Normalmente, todos os componentes de um aplicativo são executados no processo padrão criado
para ele. Ele tem o mesmo nome do pacote do aplicativo.
O atributo
process
do elemento<application>
pode definir um padrão diferente para todos os componentes. No entanto, cada componente pode substituir o padrão com o próprio atributoprocess
, permitindo distribuir seu aplicativo em vários processos.Se o nome atribuído a esse atributo começar com dois-pontos (
:
), um novo processo, particular ao aplicativo, será criado quando necessário, e o broadcast receiver será executado nesse processo.Se o nome do processo começar com um caractere em letra minúscula, o receiver será executado em um processo global com esse nome, desde que tenha permissão. Isso permite que os componentes de diferentes aplicativos compartilhem um processo, reduzindo o uso de recursos.
- Introduzido no:
- API de nível 1
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2024-02-16 UTC.
[]
[]
{
"last_modified": "Última atualização 2024-02-16 UTC.",
"state": ""
}