android - Rxjava2、Retrofit2 - 在两个类之间传输数据。

标签 android retrofit2 rx-java2

我有简单的 Observable。

public interface CitiesApi {
    @GET("location/cities")
    Observable<List<City>> getCities(@Query("country") String countryId);
}

我还有两个类(class):

class Manager {

List<City> mList = new ArrayList();

public Observable<List<City>> getCitiesObservable(String countryId) {
// I want to update mList value in each new request;
 return CitiesApi.getCities(countryId);
}

第二类:

class Presenter {

    public void request() {


    Manager.getCitiesObservable("us")
           .subscribeOn(Schedulers.newThread)
           .observeOn(AndroidSchedulers.mainThread)
           .subscribe(new ......)
        }

如您所见,我写了一条评论“我想在每个新请求中更新 mList 值”。 每次 Presenter 发出请求时,如何在 Manager 类中更新 mList?

最佳答案

你应该使用 RxJava 的转换运算符(如 map)来实现你想做的事情。这是所有运营商的列表 - ReactiveX - Operators

这里是你如何做到的:

class Manager {

    List<City> mList = new ArrayList();

    public Observable<List<City>> getCitiesObservable(String countryId) {
        return CitiesApi.getCities(countryId)
                .subscribeOn(Schedulers.io())
                .map(new Function<List<City>, List<City>>() {
                    @Override
                    public List<City> apply(List<City> cities) throws Exception {
                        // Do your stuff and return a List<City> object
                    }
                });
    }
}

关于android - Rxjava2、Retrofit2 - 在两个类之间传输数据。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47772726/

相关文章:

kotlin - android/kotlin-在单击“后退”按钮时,使用CompositeDisposal(RXjava2)进行的 retrofit 无法转到响应/可抛出的 block

java - Retrofit 2中如何同时调用多个请求

android - 如何在 retrofit 2 + rx-android 上注册全局错误转换器?

java - io.reactivex.exceptions.UndeliverableException 异常无法传递给消费者,因为它已经取消/处置

java - MVVM架构中从存储库插入数据后无法切换到MainActivity

android - 如何在 Android 中将 WebView 注册为 HTML 阅读器?

android - Quickblox - Android 应用程序的 SDK 在应用程序处于后台时不接听电话

android - RxJava2 可流动 : send objects to server on by one and detect end

android - 从 fragment 检查互联网连接android的方法?

android - 在 Google Play Integrity 中生成 Nonce 的正确方法是什么