Обработка передозировки GcmNetworkManager

Мне нужно запланировать задачу, которая выполняется каждые 24 часа, чтобы получить небольшие данные с удаленного сервера. GcmNetworkManager кажется кандидатом в качестве префекта, поскольку мне нужно поддерживать sdk 15+. (JobScheduler – только 21+).

Способ, которым я достигаю этого, расширяя приложение. OnCreate , я создаю PeriodicTask с определенным тегом, и я вызываю .setUpdateCurrent (false) (Итак, 1-й из них получает запланированные и последующие задачи должны игнорироваться, так как они не должны обновлять существующую задачу).

В документации, которую я прочитал

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

В моем сценарии это не имеет значения, так как onCreate of Application Я всегда создаю задачу обновления. Есть ли лучший способ, чем я делаю? (Также мне хотелось бы проверить, есть ли ожидающая периодическая задача с заданным тегом)

Если вы не прослушиваете ACTION_MY_PACKAGE_REPLACED в BroadcastReceiver (и планируете там свою задачу), вы должны по-прежнему переопределять onInitializeTasks() чтобы создать тот же PeriodicTask . В противном случае может быть время между тем, когда ваше приложение обновляется в Google Play Store и когда оно выполняется вручную пользователем, у которого нет запланированной периодической задачи.

Intereting Posts
Android OpenGL ES 2.0 ограничивается только 16 текстурами в памяти? Никаких изменений в развертывании Android-студии 2.1 Как определить, поддерживает ли пусковая установка начало вращения экрана Android: getChild () значения EditText при нажатии кнопки в ExpandableListView Правило Threading AsyncTask. Может ли оно действительно использоваться только один раз? Самоподписанный SSL-прием на Android NotifyDataSetChanged () в Fragment не обновляет listview Как правильно импортировать библиотеку Android с кодом JNI? Применить фоновое изображение к AlertDilog Уведомление GCM, не полученное на одном из мобильных устройств Ресурс Android strings.xml – арабский язык и строки с динамическим форматированием Textview Lazyloading, setText в неправильном положении в gridview? Новое предупреждение при создании приложения для Android с градиентом Android / Java: вызов метода с использованием отражения? Почему мой ScrollView слишком широк, только когда ему не нужно прокручивать?