Pesquisar este blog

quinta-feira, 4 de fevereiro de 2016

Exemplo das Classes BroadCast, Notification e Alarm Android Combinadas

Estas três classes Android combinadas são um poderosa ferramenta na mão do desenvolvedor, usadas com inteligência, podem trazer grandes benefícios nas duas pontas da relação usuário aplicativo.

Para o desenvolvimento de uma aplicação que se comunique com o usuário é imprescindível a utilização de notificações periódicas para que ele saiba que o aplicativo existe e todo o projeto não caia no esquecimento, também é possível agendar  coleta de dados para identificar deslocamento entre outras possibilidades.

A grande questão é como fazer essas classes trabalharem juntas ao seu favor. Existem muitos bons materiais publicados na web, inclusive serão utilizados para aprofundar as informações aqui prestadas. A grande dificuldade é encontrar um exemplo completo, por este motivo esta postagem foi criada.

Em resumo será criado uma Activity principal e duas BroadCasts, uma denominada Boot e outra Alarme. É possível analisar o diagrama de classes do exemplo logo abaixo:


As classes, Alarme e Boot, são extensões da super-classe Broadcast herdando assim todas as suas características. Assim como, a classe Main estende a super-classe Activity. O relacionamento entre as classes Alarme e Boot com a Main é de agregação pois,  mesmo depois de destruída a Activity Main o alarme ficará ativo e cada vez que o sistema é reiniciado a classe Boot vai receber a informação de forma independente.

Assim que instalado, no emulador ou em um aparelho, e inicializado o exemplo apenas mostrará uma tela branca com um label: Testar Alarme no centro como mostrado abaixo.


A partir do momento que o S.O. é reinicializado o um sinal de BroadCast (BOOT_COMPLETED) é enviado pelo sistema e a classe Boot o recebe e arma o Alarme para notificar o sistema na inicialização e a cada dez segundo a contar daí. A classe Boot é mostrada abaixo:


A cada alarme é disparado outro sinal de BroadCast (ALARME) o qual a classe Alarme recebe e roda a notificação. A classe Alarme é mostrada abaixo:



A maior dificuldade no entendimento do funcionamento é que somente com um sinal de BroadCast enviado o sistema não  funcionará corretamente. O detalhe é que são dois sinais e que outros sistemas podem receber e enviar múltiplos sinais. Abaixo é possível verificar o Manifest do exemplo:


Foram pedidas a permissões para cada ação que o exemplo utiliza, vibrar e ser informado sobre o Boot do S.O.  Também é possível notar que existem dois receivers um para cada comunicação,  do Alerta e do Boot.

E finalmente a classe Main é mostrada abaixo:


Caso exista a necessidade de aprofundamento nos tópicos exibidos aqui existem estes vídeos explicativos muito bons.

Notification:

   


BroadCast:




AlarmManager:





Nenhum comentário:

Postar um comentário