Índice

Alarmas

1. Presentación

Una alarma es un intent con un tiempo de disparo o un intervalo predefinido. Puede utilizarlos para desencadenar eventos periódicos en su aplicación sin que ésta se inicie ni esté en ejecución.

Una alarma vuelve a su valor inicial cuando se reinicia el dispositivo.

2. Implementación

La clase AlarmManager permite crear y gestionar alarmas en una aplicación. Puede recuperar una instancia de la clase AlarmManager mediante el método getSystemService.

AlarmManager alarmManager = (AlarmManager) 
getSystemService(Context.ALARM_SERVICE);

Para crear una alarma, debe utilizar el método set(int type, long time, PendingIntent intent), que recibe tres argumentos:

  • El tipo de alarma deseado, que puede ser uno de los siguientes tipos:

  • ELAPSED_REALTIME: esta alarma no activa el dispositivo si éste está en espera. Cuenta el tiempo desde que se ha encendido el dispositivo.

  • ELAPSED_REALTIME_WAKEUP: esta alarma activa el dispositivo si éste está en espera. Cuenta el tiempo transcurrido desde que se ha encendido el dispositivo.

  • RTC: mismo funcionamiento que ELAPSED_REALTIME excepto que el tiempo se corresponde con la hora actual.

  • RTC_WAKEUP: mismo funcionamiento que ELAPSED_REALTIME_WAKEUP excepto que el tiempo se corresponde con la hora actual.

  • El tiempo (en milisegundos) de espera hasta que se dispare la alarma.

  • La acción que se ejecutará cuando se dispare la alarma.

public void onClick(View v) { 
   AlarmManager alarmManager = (AlarmManager)  ...