1
我想运行3个observable,并将结果设置为一个recyclerview适配器。有没有更好的方法来同时运行许多观察对象。我有3个这样的观察对象,我正在单独运行它们。有没有更好的方法来实现我想要实现的目标。在rxjava中一次运行很多观察对象?
Observable<AudioItems> observableTrend = audioModel.getTrendingMusic("all-audios",userId);
Observable<AudioItems> observableTop = audioModel.getTrendingMusic("top-audios",userId);
Observable<AudioItems> observableRecent = audioModel.getTrendingMusic("recent-audios",userId);
observableTrend.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).unsubscribeOn(Schedulers.io())
.subscribe(new Subscriber<AudioItems>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(AudioItems audioItems) {
recyclerViewTrending.setAdapter(new AudiosRecyclerAdapter(getActivity(), audioItems.getAudios(), loginFlag));
}
});
observableTop.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).unsubscribeOn(Schedulers.io())
.subscribe(new Subscriber<AudioItems>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(AudioItems audioItems) {
recyclerViewTop.setAdapter(new AudiosRecyclerAdapter(getActivity(), audioItems.getAudios(), loginFlag));
}
});
observableRecent.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).unsubscribeOn(Schedulers.io())
.subscribe(new Subscriber<AudioItems>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onNext(AudioItems audioItems) {
recyclerViewRecent.setAdapter(new AudiosRecyclerAdapter(getActivity(), audioItems.getAudios(), loginFlag));
}
});
你已经有种运行它们一次,即每个呼叫认购不堵,在你的例子。你可以将你的可观察事物合并或组合成一个大的可观察事物,但事实是它们都需要不同的处理来干涉这个意图。 – AndroidEx