"Persistencia de Aplicaciones en Segundo Plano con Notificaciones"
Clase 31 de 33 • Curso de Android: Integración de APIs nativas
Resumen
Para que una aplicación Android pueda persistir y funcionar en segundo plano, es fundamental configurar correctamente un foreground service. Esta funcionalidad es clave para aplicaciones que requieran actualizarse o realizar operaciones continuas aunque el usuario cierre la aplicación.
¿Qué necesitas considerar en el manifiesto de Android?
El primer paso básico es definir de manera explícita que se usará un foreground service en el manifiesto de la aplicación. Puedes hacerlo agregando los siguientes permisos:
FOREGROUND_SERVICE
: Indica que la aplicación utilizará un servicio visible y persistente.FOREGROUND_SERVICE_LOCATION
: Permite que el servicio use datos de localización, manteniendo la app activa aunque el usuario la cierre desde el cajón de tareas.
Al añadir estos permisos, tu aplicación tiene capacidad para seguir operando en segundo plano cuando el sistema operativo limita el funcionamiento de otras actividades.
¿Cómo crear y configurar correctamente una notificación persistente?
La creación de una notificación es mandatoria para un foreground service. A continuación, los pasos fundamentales para configurarla:
- Inicializar un
Notification Manager
mediante lazy initialization. - Usar
NotificationCompat.Builder
para construir la notificación estableciendo: - Icono pequeño (de tu elección).
-
Un título descriptivo para la actividad que ejecuta tu servicio.
-
Definir un
Notification Channel
(requerido desde Android Oreo) para organizar las notificaciones: - Mejora la experiencia del usuario permitiéndoles gestionar diferentes notificaciones de forma independiente.
¿Cómo manejar acciones del usuario desde la notificación?
Es recomendable agregar un Pending Intent
en la notificación. Esto permite interactuar directamente con el usuario cuando éste pulsa en la notificación:
- Crear un
Intent
con una URI específica para abrir la actividad pertinente. - Utilizar la clase
TaskStackBuilder
para garantizar la navegación adecuada al pulsar la notificación. - Configurar la actividad para que sea instancia única mediante
Intent.FLAG_ACTIVITY_SINGLE_TOP
.
Este procedimiento garantiza que al hacer clic en la notificación, tu actividad específica abra correctamente.
¿Te ha resultado útil esta información? ¡Déjanos saber cualquier duda o experiencia en los comentarios!