La risposta di @paha manca un punto importante:IntentService non è sufficiente. Tra onReceive() termina e IntentService viene avviato, il telefono potrebbe riaddormentarsi. Hai bisogno di un blocco (statico) per colmare questa lacuna:questo è implementato in WakefulIntentService di Mark Murpphy
Quindi mantieni AlarmManager e ricevitore ma avvia un WakefulIntentService dal tuo onReceive() .
Vedi:
- Sospensione profonda e riattivazione di Android blocca
- Il wakelock di PowerManager non riattiva il dispositivo dal servizio