Se um aplicativo quiser receber e responder a evento global, como um telefone tocando ou uma mensagem de texto recebida, ele deve ser registrar como Broadcast Receiver. Esse registro pode ser feito de duas formas:
| De forma ESTÁTICA | De forma DINÂMICA |
|---|---|
| Na forma estática, o aplicativo pode implementar um elemento XML denominado de <receiver> no arquivo AndroidManifest.xml que descreve o nome da classe que representa um Broadcast Receiver bem como uma enumeração de seus Intent Filters. Lembre-se que o Intent Filter descreve o Intent que um aplicativo quer processar. Se o receptor estiver registrado no arquivo AndroidManifest.xml, o aplicativo não precisa estar em execução para ser ativado. Quando o evento ocorre, o aplicativo é iniciado automaticamente na notificação do evento de ativação pelo próprio sistema operacional Android que é responsável por gerenciar esse procedimento. | Na segunda forma considerada dinâmica, o aplicativo pode, por meio do registro em tempo de execução, se credenciar através do método Register Receiver da classe Context. |
Assim como os Services, os Broadcast Receivers não possuem um GUI (Grafical User Interface). Além disso, o código que será executado no método on Receive de um Broadcast Receiver não deve fazer suposições sobre a duração de operações longas. Caso seja necessário um tempo longo para execução da referida operação, é extremamente recomendado que o código do método on Receive inicie uma requisição para um Service completar a função requisitada, porque o componente de aplicativo Service é projetado para operações de longo prazo, enquanto que o Broadcast Receiver é projetado para operações de curtíssimo prazo.