RxJava更大的应用程序示例/多个Observable如何适合

时间:2015-12-11 16:42:33

标签: rx-java

目前我开始使用可观察的内容,但目前我还是遇到了一些事情......

目前我有一个主类,这个人会调用一个Observable文件观察器,到目前为止一直很好。这很有效。

这样的事情:

public static void main(String args[]) {
     Observable<String> myObservable = observable();
     // Buffer on Backpressure since I load every old file/directory, too
     Subscription subscription = observable.onBackpressureBuffer() 
        .subscribe(subscriber -> {

        })
    ... // Code that stop the program from stopping
}

这就是我所知道的我想要一些其他Observable的东西,比如说 OfficeObservablePdfObservable。当文件的扩展名为.pdf时将使用哪个将使用PdfObservable。如果它有类似.docx的东西,它应该调用OfficeObservable。但是我怎么能把它附加到一个更大的程序。特别是因为那不是我想要使用的最后一个可观察者。

我可以在subscribe方法或flatMap中将它们链接在一起,让它们全部返回相同的接口吗? 我一直坚持如何从RxJava中获取更大的应用程序。

1 个答案:

答案 0 :(得分:0)

你可以像这样公开你的专业(和FileObservable):

Observable<String> fileObservable;

private void init(){ // called from constructor or some other init'ish method
  //init your fileObservable
}    

public Observable<String> getFileObservable(){
  return fileObservable;  
}
public Observable<String> getPdfFileObservable(){
  return fileObservable.filter(name -> name.endsWith(".pdf"))
}

如果您想要将cache()添加到fileObservable或将其他有用的Observable运算符添加到其中,这很大程度上取决于您要执行的操作。