Используемый компонент: WorkManager
Используемая версия: 2.3.4
Devices / Android версии, воспроизводимые на: Любые
Привет, я хочу удалить воркера из очереди workmanager
, даже если она завершена или выполняется. Я знаю, что могу отменить его, когда Worker находится в состоянии RUNNING, проблема в том, что когда он FINISHED и FAILED, я хочу его удалить. Workmanager.pruneWork()
удаляет всех воркеров в WorkManager, но я хочу просто удалить конкретный c один.
Вот мой сценарий:
- Я запускаю воркера, и он терпит неудачу. return
results.failure()
- Теперь у меня есть экран, на котором отображаются все рабочие, которые находятся в состоянии
Failed
. - Все неудачные рабочие У меня есть возможность удалить или повторить попытку
- Пользователь нажимает значок (x), чтобы удалить сбойного работника из пользовательского интерфейса и удалить его из WorkInfoList, чтобы он больше не отображался.
- Если нет возможности удалить одного рабочего, то как я могу удалить его из WorkInfoList поэтому в следующий раз, когда пользователь go перейдет на этот экран, он не увидит удаленного Failed Worker?
- Или, если есть возможность изменить состояние с FAILED на CANCEL, тогда я могу просто игнорировать отмененные?
- Также, через какое время WorkManager автоматически очищает свою базу данных?
Любая помощь будет принята с благодарностью. Спасибо.