RxJava Observable,按需发出

时间:2017-01-05 20:34:48

标签: rx-java system.reactive

在我的Android应用程序中,我会显示用户照片列表。照片保存在服务器上,照片数量可能非常大。当用户要求向他展示照片时,应用程序首先从服务器获取,比如10张照片。然后用户要求显示下一个10,应用程序再加载10个,依此类推。 我使用rx.Observable加载照片并在订阅者的onNext()中显示每个照片。 但我怎么能告诉Observable, 多少照片从服务器中提取?

找到解决方案 - 使用Producer。这是关于生产者的good article

1 个答案:

答案 0 :(得分:1)

我为此感到抱歉在C#中(希望有人可以为我翻译)。

你可以试试这个:

var subject = new Subject<int>();

var query =
    from count in subject
    from image in GetImages(count)
    select image;

query
    .Subscribe(image =>
    {
        /* do something with each image */
    });

您只需要定义GetImages方法。

现在,当您想要调用此代码时,只需要subject.OnNext(10)即可获得10张图片。