Цепочки переднего плана Workmanager?

#android #android-workmanager

Вопрос:

Я нахожусь в середине процесса миграции синхронизации моего приложения, он состоит из множества этапов, некоторые из которых могут выполняться независимо, а другие зависят от более ранних этапов. Это казалось простым случаем для цепочек WorkManager, синтаксис прост в организации этих зависимостей, каждый работник может добиться успеха/потерпеть неудачу независимо и может использовать сопрограммы с помощью CoroutineWorker .

Ранее я изучал использование работников переднего setForeground/setForegroundAsync плана , так как это повышает приоритет работы и предоставляет уведомление. Для автономных работников это здорово, но я не видел способа применить это к цепочкам.

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

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

Похоже, это будет довольно распространенный вариант использования, поэтому я удивлен, что это не так.

Есть ли лучший способ сделать это, которого я не вижу?