GCMTaskManager PeriodicTask перезапустить таймер и / или посмотреть, сколько времени осталось?

Я пытаюсь использовать GCMTaskManager для планирования периодической задачи, которая запускается примерно каждые 30 минут. Когда он запускается, он выполняет «обновление» некоторых внутренних данных в приложении.

У меня это предварительно запущено, и я могу видеть, используя команду LOG в OnRunTask, что задача запускается по желанию. У меня она работает (по крайней мере, согласно ЖУРНАЛУ, который я заполняю, когда срабатывает OnRunTask.

У меня две проблемы, и я не могу определить, можно ли это сделать ...

  • Есть ли способ узнать, сколько времени «осталось» до следующего OnRunTask срабатывания ... или ... примерно в какое «время» он должен работать следующим? Например, если для PeriodTask осталось 30 минут ... и прошло 18 минут, можем ли мы программно увидеть, что осталось 12 минут?

  • У меня есть внутренняя «кнопка» для ручного запуска обновления APPS. Если пользователь нажимает на это, я хочу «перезапустить» таймер PeriodicTask с этой точки. То есть, если 30-минутный OnRunTask должен сработать примерно через 12 минут, а пользователь нажимает UPDATE вручную, я хочу, чтобы OnRunTask теперь перезапустился через 30 минут после нажатия кнопки. Можно ли это сделать?

Спасибо

Пит


person Peter    schedule 03.05.2017    source источник


Ответы (1)


Для 1) GCMNetworkManager не предоставляет интерфейс для отслеживания прошедшего / оставшегося времени, но вы можете сделать это самостоятельно, поддерживая переменную, хранящую последнюю обновленную временную метку для ваших данных.

2) Из документации

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

person ashkhn    schedule 03.05.2017