Câu trả lời của @paha bỏ sót một điểm quan trọng:IntentService là không đủ. Giữa onReceive()
kết thúc và IntentService được khởi động, điện thoại có thể ngủ lại. Bạn cần một khóa (tĩnh) để thu hẹp khoảng cách này - điều này được triển khai trong WakefulIntentService
của Mark Murpphy
Vì vậy, hãy giữ AlarmManager và bộ thu nhưng khởi chạy WakefulIntentService
từ onReceive()
của bạn .
Xem:
- Chế độ ngủ sâu và khóa chế độ thức của Android
- PowerManager không khóa thiết bị khỏi dịch vụ