我有一个文章列表,其中每篇文章都包含一个图片 url。
我还有函数 downloadImage(url),它从 url 下载图像并将其保存到设备。
现在我想下载每篇文章的所有图片(每次下载都在它自己的线程中?)并在所有图片下载完成后继续操作。
我如何使用 RX 做到这一点?
谢谢!
编辑: 感谢戴夫的回答。它成功了,但有一件事我必须纠正:如果你有一个不可迭代的对象(比如我的例子中的 Article),你需要使用 Observable.just() 而不是 Observable.from()。
Observable
.from(articles)
.flatMap(article ->
Observable
.just(article)
.doOnNext(a -> downloadImage(a.imageUrl))
.subscribeOn(Schedulers.io())
)
.doOnError(t -> logError(t))
.subscribe();
最佳答案
尝试在单独的线程中下载每篇文章图片 url:
Observable
.from(articles)
.flatMap(article ->
Observable
.from(article)
.doOnNext(a -> downloadImage(a.imageUrl))
.subscribeOn(Schedulers.io())
)
.doOnError(t -> logError(t))
.subscribe();
关于android - Android 上的 JavaRx : Observe if multiple files have downloaded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31893412/