Допустим, у нас есть два рабочих: WorkerA
и WorkerB
.Теперь WorkerB
не может быть запущено до завершения Worker
.Обычно мы объединяем этих двух рабочих:
WorkManager.getInstance()
.beginWith(workA)
.then(workB)
.enqueue()
Но проблема в том, что мы не знаем точного момента, когда мы можем начать WorkerB
(мы только то, что он должен ждать WorkerA
),
На самом деле есть два случая:
- Мы хотим начать
WorkerB
, когда WorkerA
начался, но еще не закончен. - Мы хотимначало
WorkerB
после того, как WorkerA
закончилось.
В идеальном мире WorkManager
может предпочесть дождаться какой-либо работы или привязаться к уже существующей работе.
Я думал о том, чтобы начать WorkerB
с WorkerA
до того, как он закончит выполнять работу, но я не уверен, является ли доступ к WorkManager
с работы до возвращения Result
хорошей практикой.