RxJava Observable基于列表中的项目

时间:2015-08-06 10:24:19

标签: android rx-java

我需要一个永远不会结束的Observable,当列表中有项目时,只需处理一些数据并链接另一个observable。有没有办法实现,最好的方法是什么?

我最接近的想法是创建一个可观察的计时器,如果列表中有项目,则每隔x秒检查一次。这个想法并不理想,因为我需要在列表中存在值时立即处理数据,我会在可观察链之外进行修改。

arguments

2 个答案:

答案 0 :(得分:1)

我认为您可以使用Subject,并将您的下一个项目推送到那里。

PublishSubject<Integer> subject = PublishSubject.<Integer>create();

subject.flatMap(integer -> captureList.getLatestCaptureCut())
    .flatMap(vp::processVideo)
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe();

//push new items
subject.onNext(0);
subject.onNext(1);

答案 1 :(得分:1)

我建议您在NetBeans->service(next to you project)->server->View server log课程中使用PublishSubject。您可以使用主题提供推送方法,而不是提供 pull 方法CaptureList

getLatestCaptureCut()

然后,您可以PublishSubject<VP> captured = PublishSubject.create(); .subscribe()并在数据进入时处理数据。

PublishSubject中,您可以致电

CaptureList

每次有新数据可用时。例如,在captured.onNext(vp); 中。我假设你已经有一些生成setLatestCaptureCut()的例程并存储它,以便在CaptureCut中使用它。