Я исследую androidx.work.WorkManager
в моем текущем приложении для Android.
Я использую
implementation 'android.arch.work:work-runtime:1.0.0-rc01'
Я пытаюсь запланировать цепную работу и наблюдать LiveData<WorkInfo>
для каждого изЖивые этапы.
Я не вижу, как этого добиться.
Мой текущий код похож на это: -
public LiveData<WorkInfo> syncAll() {
final OneTimeWorkRequest stageOne = new OneTimeWorkRequest.Builder(Stage_0001.class).addTag(STAGE_1_IN_PROGRESS_TAG).build();
final OneTimeWorkRequest stageTwo = new OneTimeWorkRequest.Builder(Stage_0002.class).addTag(STAGE_2_IN_PROGRESS_TAG).build();
final OneTimeWorkRequest stageThree = new OneTimeWorkRequest.Builder(Stage_0003.class).addTag(STAGE_3_IN_PROGRESS_TAG).build();
final OneTimeWorkRequest stageFour = new OneTimeWorkRequest.Builder(Stage_0004.class).addTag(STAGE_4_IN_PROGRESS_TAG).build();
mWorkManager.beginUniqueWork(CHAINED_UNIQUE_NAME, ExistingWorkPolicy.KEEP, stageOne).then(stageTwo).then(stageThree).then(stageFour).enqueue();
return mWorkManager.getWorkInfoByIdLiveData(stageOne.getId());
}
Мой наблюдатель получает только обновления stageOne.
Если я поменяю на
public LiveData<List<WorkInfo>> syncAll() {
final OneTimeWorkRequest stageOne = new OneTimeWorkRequest.Builder(Stage_0001.class).addTag(STAGE_1_IN_PROGRESS_TAG).build();
final OneTimeWorkRequest stageTwo = new OneTimeWorkRequest.Builder(Stage_0002.class).addTag(STAGE_2_IN_PROGRESS_TAG).build();
final OneTimeWorkRequest stageThree = new OneTimeWorkRequest.Builder(Stage_0003.class).addTag(STAGE_3_IN_PROGRESS_TAG).build();
final OneTimeWorkRequest stageFour = new OneTimeWorkRequest.Builder(Stage_0004.class).addTag(STAGE_4_IN_PROGRESS_TAG).build();
mWorkManager.beginUniqueWork(CHAINED_UNIQUE_NAME, ExistingWorkPolicy.KEEP, stageOne).then(stageTwo).then(stageThree).then(stageFour).enqueue();
return mWorkManager.getWorkInfosByTagLiveData(CHAINED_UNIQUE_NAME);
}
Мой наблюдатель получит одно обновление пустого списка из WorkInfo
с.
Как мне наблюдать каждый этап последовательности работников?