我需要一个永远不会结束的Observable,当列表中有项目时,只需处理一些数据并链接另一个observable。有没有办法实现,最好的方法是什么?
我最接近的想法是创建一个可观察的计时器,如果列表中有项目,则每隔x秒检查一次。这个想法并不理想,因为我需要在列表中存在值时立即处理数据,我会在可观察链之外进行修改。
arguments
答案 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
中使用它。