使用同步和异步调用时,我对Retrofit有了扎实的把握。但是,我在创建一些复杂的任务时遇到了一个小问题,我必须:
我读到了这个问题,我意识到RxJava会解决我的问题。但坦率地说,我发现到目前为止理解整个过程真的很难。
如果我阅读一些正确的例子以便深入了解RxJava / RxAndroid问题,那将会很棒。
答案 0 :(得分:13)
通过此示例,您可以获取ID列表,将其划分为单个可观察对象,为每个个人ID调用服务,并为每个n
响应收到getDetails
次通知。
service.getIds()
.flatMap(ids -> Observable.from(ids))
.map(id -> service.getDetails(id))
.subscribe(detailed -> updateUi(detailed));
您可以使用Observable.zip
函数等待多个并行调用,但我不知道您是否可以在可变大小的调用中使用它。
看看这个example:
对Observable的改造支持还可以轻松地将多个REST调用组合在一起。例如,假设我们有一个获取照片的调用,另一个获取元数据。我们可以将结果压缩在一起:
Observable.zip(
service.getUserPhoto(id),
service.getPhotoMetadata(id),
(photo, metadata) -> createPhotoWithData(photo, metadata))
.subscribe(photoWithData -> showPhoto(photoWithData));
答案 1 :(得分:3)
您似乎真正想要的是关于如何开始使用RxJava的信息或示例,因此我建议您查看Dan Lew撰写的这一系列优秀文章:{{ 3}}
本系列应包含足够的材料,以便您了解如何实现您的功能。