- 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 que são 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 é 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()
. Você também pode usar as versões sobrecarregadas de transmissões do sistema (receiver, filtro) ou transmissões de aplicativo: (receiver, filtro, flags). Para mais informações sobre como criar broadcast receivers dinamicamente, consulte a descrição da classeBroadcastReceiver
.Se o broadcast receiver processar transmissões que não são do sistema, especifique um valor para
android:exported
. Defina este valor comotrue
, se quiser que o receiver possa fazer transmissões de outros apps, oufalse
, se quiser que ele só receba transmissões do 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 mais informações 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
Indica se o broadcast receiver pode ser inicializado diretamente, ou seja, se ele pode ou não 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 armazenados no armazenamento protegido do dispositivo.
O valor padrão é
"false"
.android:enabled
- Indica se o broadcast receiver pode ou não ser instanciado pelo sistema:
"
true
" se puder e "false
" caso contrário. O valor padrão é "true
".O elemento
<application>
tem o próprio atributoenabled
, que se aplica a 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 algum for "false
", ele vai ser desativado, porque não pode ser instanciado. android:exported
- Se o broadcast receiver pode ou não receber mensagens de origens que não são do sistema
fora do aplicativo: "
true
" se puder e "false
" caso contrário. Se "false
", as únicas mensagens que o broadcast receiver pode receber são aquelas enviadas por componentes do mesmo aplicativo ou 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 contiver pelo menos um filtro de intent, o valor padrão vai ser "
true
". Caso contrário, o valor padrão vai ser "false
".Esse atributo não é a única maneira de limitar a exposição externa de um broadcast receiver. Você também pode usar uma permissão para limitar as entidades externas que podem enviar mensagens a ele (veja o atributo
permission
). android:icon
- Um ícone que representa o broadcast receiver. Esse atributo precisa ser definido
como uma referência a um recurso drawable que contém a definição da imagem.
Se ele não for definido, o ícone especificado para o aplicativo como um todo vai ser usado.
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, o rótulo definido para o aplicativo como um todo vai ser
usado. 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 de todos os filtros de intent do receiver. Consulte o atributolabel
do elemento<intent-filter>
.O rótulo vai ser definido como referência a um recurso de string, para que possa ser localizado como outras strings na 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
. Ele precisa ser um nome de classe totalmente qualificado (como, por exemplo, "com.example.project.ReportReceiver
"). No entanto, como uma abreviação, se o primeiro caractere do nome for um ponto (por exemplo, ". ReportReceiver
"), ele vai 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ê tenha definido
android:exported="false"
.Não há padrão. O nome precisa ser especificado.
android:permission
- O nome de uma permissão que os transmissores precisam ter para enviar uma
mensagem ao broadcast receiver.
Se este atributo não for definido, a permissão definida pelo atributo
permission
do elemento<application>
vai ser aplicada ao broadcast receiver. Se nenhum atributo for definido, o receiver não vai ser protegido por uma permissão.Para mais informações sobre permissões, consulte a seção Permissões na introdução e outro documento, chamado Segurança e permissões.
android:process
- O nome do processo no qual o broadcast receiver precisa ser 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. Porém, cada componente pode substituir o padrão com o próprio atributoprocess
, permitindo que você distribua o aplicativo em vários processos.Se o nome atribuído a esse atributo começar com dois pontos (":"), um novo processo, particular para o aplicativo, vai ser criado quando necessário e o broadcast receiver vai ser executado nesse processo. Se o nome do processo começar com um caractere em letra minúscula, o broadcast receiver vai ser executado em um processo global com esse nome, desde que tenha permissão para isso. Dessa forma, os componentes de diferentes apps podem compartilhar um processo, reduzindo o uso de recursos.
- introduzido em:
- Nível 1 da API
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.
Last updated 2023-01-02 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Não contém as informações de que eu preciso"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Muito complicado / etapas demais"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Desatualizado"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problema na tradução"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problema com as amostras / o código"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Outro"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Fácil de entender"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Meu problema foi resolvido"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Outro"
}]