具有多网络请求的 RxJava
RxJava with multi network request
代码如下:
public class HomeDetails extends Model {
public Home mHomeData;
public AD mAdData;
public HomeDetails(Api api, String url) {
api.getHome(url, createHome(), this);
api.getAd(url, createAD(), this);
}
private NetworkResponse.Listener<Home> createHome() {
return new NetworkResponse.Listener<Home>() {
@Override
public void onResponse(Home home) {
mHomeData = home;
}
};
}
private NetworkResponse.Listener<AD> createAD() {
return new NetworkResponse.Listener<AD>() {
@Override
public void onResponse(AD ad) {
mAdData = ad;
}
};
}
}
我想使用RxJava 来帮助我知道这两个请求何时都完成了。如果全部完成,则执行另一个方法。
您可以使用 Observable.create()
为两个网络调用创建两个可观察对象,然后您可以 concat()
或 zip()
它们并在 [=13= 中执行任何您想要的].
代码如下:
public class HomeDetails extends Model {
public Home mHomeData;
public AD mAdData;
public HomeDetails(Api api, String url) {
api.getHome(url, createHome(), this);
api.getAd(url, createAD(), this);
}
private NetworkResponse.Listener<Home> createHome() {
return new NetworkResponse.Listener<Home>() {
@Override
public void onResponse(Home home) {
mHomeData = home;
}
};
}
private NetworkResponse.Listener<AD> createAD() {
return new NetworkResponse.Listener<AD>() {
@Override
public void onResponse(AD ad) {
mAdData = ad;
}
};
}
}
我想使用RxJava 来帮助我知道这两个请求何时都完成了。如果全部完成,则执行另一个方法。
您可以使用 Observable.create()
为两个网络调用创建两个可观察对象,然后您可以 concat()
或 zip()
它们并在 [=13= 中执行任何您想要的].