Я новичок в новом компоненте архитектуры WorkManager, я выполняю свои API-вызовы через Retrofit и RxJava.
Моим вариантом использования здесь является получение новых сообщений из Backend, затем просмотр уведомлений и обновление виджета.
Таким образом, код внутри метода doWork() из класса Worker может выглядеть примерно так.
@NonNull
@Override
public Result doWork() {
AppDependencies appDependencies = new AppDependencies((Application) getApplicationContext());
Repository repository = appDependencies.getRepository();
repository.getNewPosts()
.flatMap(newPosts -> repository.inserPosts(newPosts).toObservable())
.doOnError(Timber::e)
//if success - > return Result.SUCCESS,
// -> show notification
// -> update widget
// error-> return Result.Failure
.dontKnowWhatBestNextThing; //blocking or subscribing
//if we reached here then Retry
return Result.RETRY;
}
Мой вопрос - это правильный способ использования кода RxJava внутри класса Worker, потому что метод doWork() имеет возвращаемое значение, поэтому мне нужно сделать Rx-код синхронным.
если я использую неблокирующий Rx-подход, как я могу вернуть значение (Success - Failure - Retry)