Android WorkManager DB из пропорции - PullRequest
0 голосов
/ 31 марта 2020

Я написал приложение, которое регулярно запрашивает данные у веб-сервера. Обычно я делаю это только каждые несколько часов, но из-за ошибки я запрашивал обновления каждые две минуты. Это все еще не слишком разумная частота.

Однако, когда я посмотрел на размер хранилища моего приложения, я был удивлен, увидев, что оно преодолевает барьер в 100 МБ. Оказалось, что само приложение не использует пространство, а androidx.work.workdb, который имеет 103 МБ для управления заданиями. Он в основном хранил все данные в течение недели.

Я знаю, я могу использовать WorkManager.getInstance(context).pruneWork() вручную, чтобы очистить очередь, и база данных снова станет маленькой, но разве Android не должен автоматически сокращаться? Что если бы у меня была работа каждые 10 секунд?

1 Ответ

0 голосов
/ 01 апреля 2020

Как заметка высокого уровня, если у вас есть работа каждые 10 секунд, вы, вероятно, используете WorkManager для решения проблемы, которая должна использовать другое решение. Если вы действительно намереваетесь использовать WorkManager, возможно, вам следует рассмотреть возможность создания цепочек работ или уникальных работ.

В качестве документации для состояний pruneWork (https://developer.android.com/reference/androidx/work/WorkManager#pruneWork () ) WorkManager Чернослив работает через определенное количество времени, которое в настоящее время составляет 7 дней после завершения. Это позволит вам наблюдать за состоянием готовых рабочих. Если вам нужно, чтобы он работал чаще, вы можете использовать pruneWork.

...