创建一个接受参数的Observable

mid*_*ght 5 rx-java

如果有的话,创建Observable能够接受参数的s 的正确方法是什么?

例如,我可以参数化http请求

dav*_*ola 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();
            }
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

请注意,所有参数必须声明为final或代码不会编译.

如果您希望输入参数随时间变化,它们本身可能是Observable,您可以使用combineLatestzip将它们的值与其他observable组合,或者可能map或者flatMap根据输入Observables的值创建新的Observable.