Я попробовал сделать так:
-
- OneTimeWorkRequest[] arrayMyWorkRequest = new OneTimeWorkRequest[5] ;
-
- for (int i=0; i<5; i++){
- arrayMyWorkRequest[i] = new OneTimeWorkRequest.Builder(MyWorker.class).addTag("myWork")
- .setInputData(new Data.Builder().putInt("TimeWork",3).putInt("KeyWorkInd",i).build())
- .build();
- }
-
-
- mRunnable = new Runnable() {
- public void run() {
- // вычисляем время
- Log.d(TAG,"mRunnable");
- WorkManager.getInstance()
- .beginUniqueWork("work123", ExistingWorkPolicy.KEEP, arrayMyWorkRequest[0])
- .then(arrayMyWorkRequest[1])
- .then(arrayMyWorkRequest[2])
- .then(arrayMyWorkRequest[3])
- .then(arrayMyWorkRequest[4])
- .enqueue();
-
- }
- };
-
- mHandler.postDelayed(mRunnable, 1000);
- mHandler.postDelayed(mRunnable, 10000);
-
Но в логах появляется слово "crash":
2018-12-21 10:50:12.893 14964-14964/ru.vanyaivan.myapplicationworkmanager D/working: mRunnable
2018-12-21 10:50:12.961 14964-14989/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker0: start
2018-12-21 10:50:15.961 14964-14989/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker0: end
2018-12-21 10:50:15.984 14964-14995/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker1: start
2018-12-21 10:50:18.985 14964-14995/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker1: end
2018-12-21 10:50:19.000 14964-14996/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker2: start
2018-12-21 10:50:21.893 14964-14964/ru.vanyaivan.myapplicationworkmanager D/working: mRunnable
--------- beginning of crash
2018-12-21 10:50:52.152 15032-15058/? D/working: MyWorker2: start
2018-12-21 10:50:55.193 15032-15058/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker2: end
2018-12-21 10:50:55.209 15032-15063/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker3: start
2018-12-21 10:50:58.249 15032-15063/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker3: end
2018-12-21 10:50:58.266 15032-15068/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker4: start
2018-12-21 10:51:01.284 15032-15068/ru.vanyaivan.myapplicationworkmanager D/working: MyWorker4: end
Скорей всего это происходит из-за KEEP, если его заменить на REPLACE, то все происходит как на уроке, где демонстрировалась работа при использовании REPLACE.