Android上的JavaRx:观察是否已下载多个文件

时间:2015-08-08 13:04:08

标签: android file download rx-java

我有一个文章的ArrayList,其中每篇文章都包含一个图片网址。

我还有函数downloadImage(url),它可以将图像从网址下载并保存到设备中。

现在我想为每篇文章下载所有图像(每次下载其自己的线程?)并在下载所有图像时继续操作。

我怎么能用RX做到这一点?

谢谢!

编辑: 感谢Dave的回答。它做了诀窍,但有一件事我必须纠正:如果你有一个不可迭代的对象(就像我的情况下的文章)你需要使用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();

1 个答案:

答案 0 :(得分:3)

尝试使用此单独的帖子下载每篇文章图片网址:

Observable
    .from(articles)
    .flatMap(article -> 
        Observable
            .from(article)
            .doOnNext(a -> downloadImage(a.imageUrl))
            .subscribeOn(Schedulers.io())
    )
    .doOnError(t -> logError(t))
    .subscribe();