Наблюдатель за жизненным циклом Android

Я узнал о новой функции Android Jetpack WorkManager и использую ее. Приложение в основном отправляет изображения на сервер в фоновом режиме. Он работает хорошо, и изображения загружаются.

Проблема в том, что когда я пытаюсь наблюдать за рабочим статусом, я могу остановить индикатор выполнения. вот мой наблюдатель

WorkManager.getInstance().getStatusById(catSyncRequest.getId())
            .observe(this, new Observer<WorkStatus>() {
                @Override
                public void onChanged(@Nullable WorkStatus workStatus) {
                    if (workStatus != null) {
                        //mTextView.append("SimpleWorkRequest: " + workStatus.getState().name() + "\n");
                    }

                    if (workStatus != null && workStatus.getState().isFinished()) {
                        //String message = workStatus.getOutputData().getString(MyWorker.EXTRA_OUTPUT_MESSAGE, "Default message");
                        //mTextView.append("SimpleWorkRequest (Data): " + message);
                    }
                }
            })

Во второй строке ".observe" не может быть разрешен. Как обычно для любой отсутствующей библиотеки, она выделена красным цветом.

Вот скриншот введите здесь описание изображения

Я проверил в Интернете, но никто, похоже, не сталкивается с этой проблемой. Что я мог упустить?


person Joe Okatch    schedule 04.11.2018    source источник
comment
Какую версию WorkManager вы используете? (ваша зависимость Gradle). Кажется, это работает просто отлично для меня. Пробовали ли вы делать старую Android Studio Invalidate caches / restart перемешивать?   -  person Knossos    schedule 07.11.2018


Ответы (1)


WorkManager 1.0 alpha 10 изменил тип возврата getStatusById() на ListenableFuture.

Если вы хотите использовать наблюдаемое, вам нужно использовать новый метод API: getStatusByIdLiveData< /а>.

person pfmaggi    schedule 07.11.2018