La respuesta de @paha pierde un punto importante:IntentService no es suficiente. Entre onReceive()
finaliza y se inicia IntentService, es posible que el teléfono se vuelva a dormir. Necesita un bloqueo (estático) para cerrar esta brecha; esto se implementa en el WakefulIntentService
de Mark Murpphy.
Así que mantenga el AlarmManager y el receptor, pero inicie un WakefulIntentService
desde su onReceive()
.
Ver:
- Sueño profundo de Android y bloqueos de activación
- PowerManager wakelock no activa el dispositivo del servicio