Задать вопрос
@emigrantdd

Как изменить интервал запуска сервиса?

Доброго времени суток. Задача состоит в том что бы изменить интервал через который запускается(просыпается) сервис (ну или точнее сказать метод OnRecive) во время уже запущенного сервиса,грубо говоря,что бы он сам изменял свой интервал внутри себя?
Сейчас интервал задается перед запуском сервиса и лежит он в переменной INTERVAl,а в коде это выглядит так:
Intent intent = new Intent(this, RepeatingAlarmService.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(this, REQUEST_CODE, intent, 0);
        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(
                AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime() + FIRST_RUN,
                INTERVAL,
                pendingIntent);
  • Вопрос задан
  • 2442 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@sultanov
Через глобальную переменную.... например... и присваивай ей внутри метода сколько хочешь...
Ответ написан
@falcon_sapsan
DevOps
А можно поподробней?
Я храню период запуска сервиса в базе приложения.
А как применить новые настройки?

Service.java
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(
                AlarmManager.ELAPSED_REALTIME_WAKEUP,
                SystemClock.elapsedRealtime(),
                DB.getServiceRepeatTime(), // тут берется время
                pendingIntent);


установка нового значения в базе не влияет на период запуска выполнения задач сервисом.
Как применить новое значение?
Ответ написан
Ваш ответ на вопрос

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

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