Android AlarmManager: Gestión de alarmas

Índice

Introducción

En determinados tipos de aplicaciones es necesario ejecutar en instantes de tiempo futuros determinadas acciones, incluso aunque la aplicación no esté ejecutándose en ese momento, aquí entra en juego el servicio de alarmas de Android, gestionado por la clase android.app.AlarmManager.

Gracias a este servicio, el programador podrá registrar/cancelar el deseo de ser notificado (a través del uso de android.content.Intent) en un determinado instante, sin tener que estar para ello lanzando un servicio especifico de la aplicación que haga pooling o cosas así, que entre otras cosas consume batería (uno de los puntos más importantes a tener en cuenta en el desarrollo de aplicaciones para móviles).

Cuando el gestor de alarmas notifique al componente registrado para atender el Intent, creará automáticamente un bloqueo a nivel PartialWakeLock para asegurar que la CPU del dispositivo es capaz de ejecutar el código fuente, siendo responsabilidad del programador lanzar un servicio en caso de que la operación a realizar sea costosa en tiempo (aprox. 10 segundos max.) y gestionar el mismo una correcta política de gestión de energía.

Si no comprendes bien lo anterior te recomiendo que leas un poco sobre el tema, pues es demasiado importante como para obviarlo: PowerManager.

Para mostraros estos conceptos, a continuación voy a exponeros un ejemplo autocomentado.

Captura de pantalla de la aplicación a construir

Es una aplicación sencilla (didáctica), un par botones que al hacer clic en cada uno de ellos registra una alarma que será lanzada dentro de x segundos.
Prueba a pulsar varias veces e incluso mostrar el escritorio para que la aplicación no esté activa y en primer plano.

Código fuente del ejemplo

Puedes descargarte el código fuente haciendo clic aquí

Manos a la obra..

La representación de la ventana principal del Activity principal de la aplicación

El archivo de configuración de la aplicación: AndroidManifest.xml

El negocio de la ventana principal de la aplicación

Las cosas que quiero realizar cuando el sistema operativo Android me notifique.

Otros métodos y consideraciones:

En Android existen muchas formas de hacer las cosas, un desarrollador profesional debería de preocuparse de conocerlas todas y aplicar la más adecuanda en cada momento.
En este caso podríamos usar Handlers, Messages, Timers.

Bueno, espero que os sea de utilidad, recuerda que puedes profundizar más, esto es sólo una introducción.
Un saludo. Carlos García

Categorías del artículo

Todas las categorías

Por favor, vota +1 o compártelo si te pareció interesante

Comentarios de los lectores