#android #android-workmanager
Вопрос:
Я нахожусь в середине процесса миграции синхронизации моего приложения, он состоит из множества этапов, некоторые из которых могут выполняться независимо, а другие зависят от более ранних этапов. Это казалось простым случаем для цепочек WorkManager, синтаксис прост в организации этих зависимостей, каждый работник может добиться успеха/потерпеть неудачу независимо и может использовать сопрограммы с помощью CoroutineWorker
.
Ранее я изучал использование работников переднего setForeground/setForegroundAsync
плана , так как это повышает приоритет работы и предоставляет уведомление. Для автономных работников это здорово, но я не видел способа применить это к цепочкам.
Я пытался создать базовый класс для всех работников, используя setForeground
, чтобы все они обновляли одно и то же уведомление, но я заметил, что, когда один работник заканчивает, он отклоняет уведомление только для следующего, чтобы снова открыть его, и это выглядит немного странно.
Кроме того, я пытался обойти это, сделав свое собственное уведомление и наблюдая за каждым статусом работы, чтобы обновить ход уведомления, но, конечно, это выводит работу за рамки службы переднего плана.
Похоже, это будет довольно распространенный вариант использования, поэтому я удивлен, что это не так.
Есть ли лучший способ сделать это, которого я не вижу?