RxJava逐个发出项目

时间:2017-02-09 14:14:38

标签: android rx-java rx-android

我有一个使用RxJava从数据库中检索到的视频列表。我想在RecyclerViews中显示这些视频,并在此过程中生成缩略图。问题是缩略图的生成

<div>
  <p>content</p>
  <p>content</p>
  <p>content</p>
  <p>content</p>
  <p>content</p>
  <p>content</p>
  <p>content</p>
  <p>content</p>
  <p>content</p>
  <p>content</p>
</div>

速度太慢,以至于当我的列表中有很多视频时,它会阻止加载屏幕。

我想知道的是,检索我的视频列表的方式是逐个发送每个项目而不是整个列表,并在处理完每个项目(生成缩略图)时将其提供给UI(也许这种方法甚至不是正确的方法)。

这是我的视频加载代码:

Bitmap thumb = ThumbnailUtils.createVideoThumbnail(localVideo.getFilename(),
                    MediaStore.Images.Thumbnails.MINI_KIND);

1 个答案:

答案 0 :(得分:1)

使用flatMapIterable来&#34;展开&#34;内部清单:

Observable.fromCallable(() -> Arrays.asList(1, 2, 3, 4, 5, 6))
.subscribeOn(Schedulers.io())
.flatMapIterable(v -> v)
.observeOn(Schedulers.computation())
.map(v -> v * 2)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(System.out::println);