У меня есть один WM, который начинает работать каким-то методом:
public void someMethod(Params pararms){
WorkManager wm = (WorkManager) ic.lookup(CONTROL_WORK_MANAGER);
ArrayList<WorkItem> workItems = Lists.newArrayList();
List<Work> works = getSomeWorks();
for (Work work : works) {
workItems.add(wm.startWork(work));
}
//after all works have been started, I just wait for them to be finished using join method:
wm.join(workItems, WorkManager.JOIN_AND, (int) WorkManager.INDEFINITE);
// "other code"
}
someMethod()
вызывается разными потоками, и проблема в том, что wm.join()
ждет не только завершения заданных работ, но и ВСЕХ работ, запущенных ВСЕМИ потоками. В конце концов, "other code"
выполняется, когда каждая отдельная работа в приложении завершена.
Это так, как должно быть? Если да, то можно ли исправить, чтобы каждый wm.join()
ждал только выполнения "своих" работ?
Версия WAS — 8.5.5.11.
Благодарю вас!