Как синхронизировать базу данных Android sqlite с сервером с помощью Workmanager?

Я хочу загрузить содержимое БД сервера на свой локальный SQLite в приложении для Android при первом запуске приложения. После этого я хочу периодически синхронизироваться (скажем, каждый день, когда приложение открывается) с сервером. Как говорится в документе разработчика, я могу запланировать любую фоновую работу с помощью нового Android Jetpack API WorkManager. Если кто-то делал это раньше, пожалуйста, укажите, как?


person rawcoder064    schedule 07.09.2018    source источник
comment
Возможно, вам следует начать с чтения документации менеджера работ. developer.android.com/topic/libraries/architecture/workmanager я думаю док даст правильные ответы или подход   -  person Paul Okeke    schedule 12.09.2018
comment
также этот ответ может помочь запланировать работу в заданное (гибкое) время stackoverflow.com/a/54394957/2895571   -  person pavle    schedule 02.12.2019


Ответы (1)


Предположим, вы хотите запланировать периодическое обновление для загрузки данных о пожаре каждый день в 2 часа ночи. Что вам нужно сделать, так это при первом запуске приложения вычислить начальную задержку в миллисекундах, которая будет (initialDelay = отметка времени завтра в 2 часа ночи - текущая отметка времени)

Теперь запланируйте onTimeWorkRequest с этой начальной задержкой. поэтому в 2 часа ночи эта работа будет запущена в этом рабочем графике, периодическая работа, которая будет иметь фактический логический запрос на загрузку с интервалом повторения 24 часа. Оттуда этот периодический запрос будет поступать в 2 часа ночи каждый день. Используйте ограничение «networkConnected» с периодическим запросом.

person Ritzor    schedule 12.09.2018