Android Удалить воркера из очереди WorkManager или изменить состояние с FAILED на CANCELED - PullRequest
1 голос
/ 07 мая 2020

Используемый компонент: 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 автоматически очищает свою базу данных?

Любая помощь будет принята с благодарностью. Спасибо.

...