В демонстрационной версии https://github.com/commonsguy/cwac-wakeful метод OnAlarmReceiver (BroadcastReceiver) onReceive () вызывается в ответ на Alarm. Метод onReceive () запускает Сервис. Используются два Интента, один получен BroadcastReceiver, а другой Сервисом. Это кажется более сложным, чем должно быть, почему бы просто не получить Службу для получения Намерения от AlamManager?
Я понимаю, что телефон гарантированно не спит, пока onReceive () выполняет, т.е. он обернут блокировкой пробуждения. Я не уверен, предлагает ли класс Service какие-либо подобные гарантии.
Есть ли какой-либо способ запустить Службу непосредственно из Сигнала тревоги, при этом гарантируя, что Телефон будет просыпаться из спящего режима и не будет спать, пока не будет установлена блокировка от пробуждения?