2015-02-09 48 views

回答

7

您可以使用Observable.create爲:

public static Observable<String> createMyObservable(final String all, final Integer my, final Boolean parameters) { 
    return new Observable.create(new Observable.OnSubscribe<String>(){ 

     @Override 
     public void call(Subscriber<? super String> subscriber) { 
      // here you have access to all the parameters you passed in and can use them to control the emission of items: 

      subscriber.onNext(all); 
      if (parameters) { 
       subscriber.onError(...); 
      } else { 
       subscriber.onNext(my.toString()); 
       subscriber.onCompleted(); 
      } 
     } 
    }); 
} 

注意,所有的參數都必須聲明爲final或代碼將無法編譯。

如果你希望你的輸入參數隨時間變化,他們可能是可觀察到的自己,也許你可以使用combineLatestzip他們的價值觀與其他觀測相結合,或者可能mapflatMap來創建基於價值新觀測量你的輸入Observables。

相關問題