Despertador no Android com Kotlin: análise completa do Alarm Manager para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Como funciona o Alarm Manager no Android? Análise completa em Kotlin com um exemplo real



Você já se perguntou como funcionam os despertadores no seu telefone? Ou como um aplicativo de notas lembra você de uma reunião exatamente às 14:30? No Android, isso é feito por um poderoso serviço do sistema — o Alarm Manager. Embora seu nome se traduza como "gerenciador de despertadores", na verdade é um agendador de tarefas universal que permite executar código em um horário específico, mesmo que seu aplicativo esteja minimizado ou o telefone esteja em modo de suspensão.



O tópico Alarm Manager Example é uma das consultas mais populares no StackOverflow (milhares de visualizações e dezenas de perguntas). E não é surpresa: iniciantes frequentemente se confundem com PendingIntent, BroadcastReceiver e os vários métodos como set(), setRepeating() ou setExact(). Neste artigo, analisaremos um exemplo funcional real em Kotlin que você pode aplicar imediatamente no seu projeto. Sem enrolação — apenas código e explicações.



O que é o Alarm Manager e para que serve?



Alarm Manager é um serviço do sistema Android que permite que seu aplicativo execute ações em um horário definido. A principal vantagem é que ele funciona independentemente do ciclo de vida do seu aplicativo. Você pode definir um alarme, fechar o aplicativo, desligar a tela — e o Alarm Manager ainda assim executará a tarefa no momento certo.



Cenários típicos de uso:

  • Lembretes de eventos (reuniões, aniversários)
  • Sincronização periódica de dados com o servidor
  • Notificações agendadas (por exemplo, "Não se esqueça de beber água em 2 horas")
  • Execução de tarefas em segundo plano conforme agendamento


É importante entender: o Alarm Manager não é um temporizador preciso para intervalos de milissegundos. Para isso, existem Handler ou Coroutines. O Alarm Manager é otimizado para funcionar no nível do sistema, considerando a economia de energia.



Componentes principais: PendingIntent e BroadcastReceiver



Antes de escrever código, vamos entender dois conceitos-chave sem os quais o Alarm Manager não funciona.



PendingIntent é uma "intenção adiada". Você não executa a ação imediatamente, mas a empacota em um contêiner especial que o Alarm Manager executará no futuro. Imagine que você dá a um entregador um envelope lacrado com a instrução: "Abra exatamente às 15:00". O envelope é o PendingIntent.



BroadcastReceiver é um receptor de mensagens de broadcast. Quando o AlarmManager é acionado, ele envia uma mensagem de broadcast que seu BroadcastReceiver captura. É nele que você escreve o código que deve ser executado pelo alarme.



Exemplo passo a passo: criando um alarme em Kotlin



Vamos escrever um aplicativo simples que exibe uma notificação 10 segundos após o pressionamento de um botão. Este exemplo é baseado em código real de uma resposta popular no StackOverflow.



Passo 1. Criando o BroadcastReceiver



Crie uma nova classe que processará a ativação do alarme:



import android.content.BroadcastReceiverimport android.content.Contextimport android.content.Intentimport android.widget.Toast

class AlarmReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { // Este código será executado quando o alarme disparar Toast.makeText(context, "Alarme disparou!", Toast.LENGTH_LONG).show() }}


Por enquanto, estamos apenas exibindo um Toast. Em um aplicativo real, aqui poderia estar a criação de uma notificação, inicialização de um serviço ou qualquer outro código.



Passo 2. Registrando o BroadcastReceiver no manifesto



Para que o sistema conheça nosso receptor, ele precisa ser registrado no AndroidManifest.xml:



<receiver android:name=".AlarmRecei                

Blogs

Book Recommendations