小编Wes*_*lis的帖子

架构组件改造和 RxJava 2 错误处理

我目前正在尝试使用来自改造和 Okhttp 的 API 请求在架构组件中实现新的 ViewModel,一切正常,但我不知道如何将错误响应从改造传递到片段中的观察者,然后LiveDataReactiveStreams.fromPublisher上游传递给片段中的观察者。这是我到目前为止所拥有的:

public class ShowListViewModel extends AndroidViewModel {

private final ClientAdapter clientAdapter;

private LiveData<List<Show>> shows;

public ShowListViewModel(Application application) {
    super(application);
    clientAdapter = new ClientAdapter(getApplication().getApplicationContext());

    loadShows();
}

public LiveData<List<Show>> getShows() {
    if (shows == null) {
        shows = new MutableLiveData<>();
    }

    return shows;
}

void loadShows() {
    shows = LiveDataReactiveStreams.fromPublisher(Observable.fromIterable(ShowsUtil.loadsIds())
            .subscribeOn(Schedulers.io())
            .flatMap(clientAdapter::getShowWithNextEpisode)
            .observeOn(Schedulers.computation())
            .toSortedList(new ShowsUtil.ShowComparator())
            .observeOn(AndroidSchedulers.mainThread())
            .toFlowable());
}
Run Code Online (Sandbox Code Playgroud)

在片段中,我在 OnCreate 中使用以下内容设置了 viewModel:

ShowListViewModel model = ViewModelProviders.of(this).get(ShowListViewModel.class);
    model.getShows().observe(this, shows -> {
        if (shows == null || …
Run Code Online (Sandbox Code Playgroud)

android retrofit2 rx-java2 android-architecture-components

4
推荐指数
1
解决办法
3089
查看次数