2015-02-09 23 views

risposta

7

È possibile utilizzare Observable.create per questo:

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(); 
      } 
     } 
    }); 
} 

Nota che tutti i parametri devono essere dichiarati come finale o il codice non compilazione.

Se vi aspettate che i vostri parametri di input di variare nel corso del tempo possono essere un'osservabile se stessi e si potrebbe forse usare combineLatest o zip per combinare i loro valori con le altre osservabili, o forse map o flatMap per creare nuovi osservabili sulla base dei valori del tuo input osservabili.

Problemi correlati