2016-12-30 6 views
2

Я хочу, чтобы мое приложение просыпалось так часто. Код, я использую, чтобы установить сигнализацию является:Тревога не пробуждает телефон

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + pollInterval, pendingIntent); 

Существует код в обработчик сигнала тревоги для сброса тревоги с вышеуказанным кодом.

Проблема заключается в том, что когда телефон находится в глубоком сне (например, в ранние часы утра), сигнал не звонит.

Любые предложения?

ответ

2

Если вы используете телефон с Android 6.0 или более, вам придется иметь дело с механизмом Doze. Таким образом, когда телефон находится в спящем состоянии, AlarmManager не будет работать немедленно. В документации сказано:

Стандартный AlarmManager сигнализации (в том числе setExact() и setWindow()) откладываются до следующего окна обслуживания.

и

Если вам необходимо установить сигнализацию, что огонь в дрему, используйте setAndAllowWhileIdle() или setExactAndAllowWhileIdle().

Так, просто попробуйте использовать setExactAndAllowWhileIdle() для API> 22

Документация here