Cursos / Informática para Internet / Dispositivos Móveis / Aula

arrow_back Aula 01 - Introdução ao Android

Broadcast Receiver

O último componente que iremos conhecer é o Broadcast Receiver. Esse componente é o responsável por receber e processar eventos que são gerados pelo sistema e distribuídos a todas as aplicações. A partir do Broadcast Receiver, essas aplicações podem então captar o evento que foi gerado pelo sistema e tomar ações de acordo com tais eventos.

Vários eventos de broadcast são gerados pelo sistema, como aviso de conexão a uma rede móvel, aviso de conexão a uma rede Wi-Fi, avisos de bateria fraca, de chamadas de voz, de mensagens, entre outros vários. Ao criar um Broadcast Receiver e o registrar a um desses eventos, as aplicações podem agir de maneira mais específica. Um exemplo disso seria uma aplicação que precisa trafegar grandes quantidades de dados só o fazer quando houvesse uma conexão Wi-Fi, poupando assim a banda móvel do usuário.

Um ponto importante a se destacar quando falamos de Broadcast Receivers é a capacidade que as aplicações podem ter de gerar eventos em broadcast. Ao criar uma aplicação, é possível programar para que ela envie eventos de broadcast quando eventos específicos aconteçam, como o fim de um download ou upload. Isso pode ser de interesse de alguma outra aplicação e essa aplicação pode, através de um Broadcast Receiver, receber esse evento, mesmo que o evento tenha sido gerado por uma aplicação não nativa.

O Broadcast Receiver possui um ciclo de vida bem específico. Ao implementar um Broadcast Receiver em uma aplicação, o desenvolvedor define o que deve ser feito ao receber uma ação. O Broadcast Receiver só será considerado válido a partir do momento em que essa ação é gerada e seu método onReceive(Context, Intent) é chamado. Após a execução completa desse método, o Broadcast Receiver é novamente encerrado. Esse comportamento faz com que algumas ações não possam ser tomadas dentro do Broadcast Receiver. Por exemplo, caso o Broadcast Receiver lance uma thread assíncrona e essa thread não retorne antes do fim de sua execução; quando retornar, o broadcast não mais existirá, o que irá gerar um problema interno para a plataforma. Por isso, cuidado na hora de implementar esse componente!

Versão 5.3 - Todos os Direitos reservados