Я не могу получить StatusesByTag из enqueueUniquePeriodicWork через WorkManager - PullRequest
1 голос
/ 30 мая 2019

Я использую WorkManager через implementation "android.arch.work:work-runtime:1.0.1", чтобы запустить PeriodicWorkRequest для вызова API отдыха для извлечения некоторых данных с интервалом PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS, что составляет 15 минут, мой код:

    PeriodicWorkRequest.Builder builder = new
            PeriodicWorkRequest.Builder(MyWorker.class,
            PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS, TimeUnit.MILLISECONDS)
            .addTag(TAG_WORKER)
            .setInputData(createInputData(config));
    WorkManager.getInstance().enqueueUniquePeriodicWork(TAG_WORKER,
            ExistingPeriodicWorkPolicy.KEEP, builder.build());

Я хочу узнать статус или PeriodicWorkRequest, поставленный в очередь WorkManager его TAG, через код:

WorkManager.getInstance().getStatusesByTag(TAG_WORKER);

Но я не могу разрешить метод getStatusesByTag(TAG_WORKER), пожалуйста, помогите, если кто-нибудь сделал обходной путь, чтобы получить статус запроса в очередь TAG.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Вы используете unique Работа. Для наблюдения уникальной работы вы должны использовать getWorkInfosForUniqueWorkLiveData API.

Изменить: Перечитайте фрагмент кода и поняли, что вы также добавляете tag. Вы также можете использовать getWorkInfosByTagLiveData API, упомянутый в ответе ниже.

0 голосов
/ 30 мая 2019

API для получения информации о статусе WorkRequest изменился в прошлом году с 1.0.0-alpha11 .Чтобы узнать статус вашей работы, вы можете использовать:

WorkManager.getInstance().getWorkInfosByTagLiveData(TAG_WORKER)
    .observe(lifecycleOwner, new Observer<WorkInfo>() {
        @Override
        public void onChanged(@Nullable WorkInfo workInfo) {
          if (workInfo != null && workInfo.state == WorkInfo.State.SUCCEEDED) {
              displayMessage("Work finished!")
          }
        }
    });

Более подробную информацию вы можете найти на странице документации WorkManager: "Рабочие состояния и наблюдение за работой"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...