Каковы причины задержки в работe Service Android?

Добрый день,
Такая проблема :
Имеется сервис, который по расписанию отправляет уведомления (notification), в процессе работы, если устройство неактивно, появляются задержки в работе сервиса. Т.е опаздывают уведомления, причем опоздание зависит от времени не активности.
Внутри сервиса бесконечный цикл в дочернем потоке, который проверяет условие :
if(date.before(new Date())) { ... } (а так же было ли уже отправлено уведомление)
Проблема в том, что если ус-во лежит неактивном режиме несколько часов, то уведомления вообще не приходят.
Спасибо!
  • Вопрос задан
  • 855 просмотров
Решения вопроса 2
@KaktusTeam
MoneyApp ведение личного бюджета на Android
Добрый день,
Просто цикла в сервисе не достаточно, девайс нужно разбудить после того как он уснул. Думаю это сделано для того чтоб сервисы не сажали батарейку пока девайс выключен.
Ответ написан
@TimkaTV Автор вопроса
Спасибо. В сервисе прописал
AlarmManager manager = (AlarmManager)getSystemService(
Context.ALARM_SERVICE);
Intent intent = new Intent(getApplicationContext(), ServiceMeeting1.class);
PendingIntent alarmIntent = PendingIntent.getService(getApplicationContext(), 0, intent, 0);
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() +
60 * 1000, alarmIntent);

Т.е при запуске сервиса происходит планирование и через минуту происходит перезапуск сервиса!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Copperfield
Android dude
Нужно дернуть WakeLock.
Если сервис стартует из BroadcastReceiver, используйте WakefulBroadcastReceiver
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы