Artigo WebMobile 24 - Agendamento de execução no Android
Este artigo aborda o tema Agendamento de execução no Android através da criação de uma aplicação que dispara alarmes em horários pré-programados.
Clique aqui para ler este artigo em PDF
Android
Agendamento de execução no Android
Desenvolvendo uma aplicação de alarmes
De que se trata o artigo:
Este artigo aborda o tema Agendamento de execução no Android através da criação de uma aplicação que dispara alarmes em horários pré-programados. Aqui vamos ver como agendar estes alarmes no sistema operacional e como armazená-los em banco de dados.
Para que serve:
Desenvolver aplicações onde certas rotinas executam em um determinado horário ou data. Sendo possível agendar rotinas de leitura de banco, envio de e-mail, download de arquivos de mídia e serviços de áudio, por exemplo.
Em que situação o tema é útil:
Quando se deseja programar a execução de uma atividade ou serviço para um momento específico no tempo, como iniciar um download durante a madrugada ou despertar você com sua música predileta pela manhã.
Em várias situações precisamos agendar a execução de uma aplicação e às vezes isto deve acontecer mesmo que o handset esteja “dormindo”. Exemplos comuns são o alarme ou despertador do celular, uma agenda de atividades que lhe avisa quando é chegada a hora de realizá-las ou até mesmo um processo de download ou atualização que deve ser rodado à noite.
Neste artigo você vai descobrir como agendar execuções e como programá-las com o Android, acompanhando a construção de uma aplicação de agendamento de atividades.
Conhecendo a aplicação
Para abordar o assunto proposto será desenvolvida uma aplicação de Alarmes capaz de avisar ao usuário sobre uma atividade qualquer, como ligar para um amigo ou lembrar o aniversário de alguém.
Muitos recursos podem ser utilizados em uma aplicação como esta. Um bom exemplo inicial é definir o tempo de agendamento no período de 24 horas, não permitir a seleção de sons de alarme e a adição de informações sobre o evento. Com isto, teremos uma aplicação capaz de alertar o usuário que determinada hora do presente dia chegou.
Focando neste objetivo, seremos capazes de compreender a essência do que nos propomos a fazer (vide Figura 1).
Para tanto, será utilizado o android.app.AlarmManager, uma classe que fornece acesso aos serviços de alarme do sistema. Ela possibilita o agendamento de execução de uma aplicação para algum ponto no futuro. Quando o alarme ocorre, é feito o broadcast do Intent registrado, automaticamente inicializando a aplicação alvo se esta não estiver rodando (ler Nota DevMan 1). Alarmes registrados são ignorados quando o dispositivo está dormindo (mas podem opcionalmente acordar o dispositivo), e são apagados caso for desligado ou reiniciado. Para outras operações de agendamento (ticks, timeouts, etc.) é mais vantajoso o uso de android.os.Handler.
Nota DevMan 1. Os alarmes nesta aplicação são definidos como Intents no Android. Todo Intent precisa ser registrado no sistema. Este registro é feito e mantido pelo Android, não necessitando de qualquer persistência fornecida pelo desenvolvedor.
Tendo em vista que os alarmes registrados são apagados ao desligar ou reiniciar o handset, é necessária uma forma persistente de armazenamento destes alarmes. Para isso, nada melhor do que o SQLite para resolver o problema.
Figura 1. Ocorrência do alarme às 9 horas da manhã
Então, para desenvolver nossa aplicação, precisaremos de três atividades, uma para listar os alarmes agendados (possibilitar o acesso ao cadastro, edição e exclusão de alarmes), outra para efetivamente agendar o alarme e, finalmente, uma atividade representativa do alarme (cuja tela é apresentada na Figura 1).
Além destas atividades estarão presentes outras duas classes destinadas ao gerenciamento do banco de dados e utilidades (entre elas o agendamento de execução). Com a aplicação estudada, vamos ao desenvolvimento.
Começando o projeto
A primeira tarefa a realizar é a criação do projeto. Para tanto, suponho que você esteja fazendo uso do Eclipse com ADT. Este plugin lhe pergunta o nome do projeto, qual o pacote e a atividade principal do mesmo. Por hora vamos nomear o projeto de AlarmProject, fornecer como pacote com.webmobile.alarm e como atividade principal AlarmHome.
Ao confirmar a criação do projeto, o arquivo AndroidManifest.xml será criado com as definicões primárias para o funcionamento da aplicação. Não podemos esquecer que utilizaremos outras atividades além desta que acabamos de criar, e para não editar várias vezes o mesmo arquivo, desde já deixamos tudo preparado. Modifique o AndroidManifest.xml de sua aplicação para que equivalha à Listagem 1.
Listagem 1. Código do arquivo AndroidManifest.xml
01.<?xml version="1.0" encoding="utf-8"?>
02.<manifest xmlns:android="http://schemas.android.com/apk/res/android"
03.package="com.webmobile.alarm"
04.android:versionCode="1"
05.android:versionName="1.0.0""
[...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo