La réponse de @paha passe à côté d'un point important :IntentService ne suffit pas. Entre onReceive() se termine et que IntentService est démarré, le téléphone peut se rendormir à nouveau. Vous avez besoin d'un verrou (statique) pour combler cet écart - ceci est implémenté dans le WakefulIntentService de Mark Murpphy
Gardez donc l'AlarmManager et le récepteur mais lancez un WakefulIntentService de votre onReceive() .
Voir :
- Veille profonde Android et wakelocks
- PowerManager wakelock ne réveille pas l'appareil du service