首页 > 解决方案 > 从 CompositeDisposable RXJava 获取价值 - Android

问题描述

如何从下面的代码中获取返回值:

CompositeDisposable mCompositeDisposable = new CompositeDisposable();
        mCompositeDisposable.add(observableSubject(userName, password)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(@NonNull Disposable disposable) throws Exception {
                    }
                })
                .doFinally(new Action() {
                    @Override
                    public void run() throws Exception {
                    }
                })
                .subscribeWith(new DisposableObserver<String>() {
                    @Override
                    public void onComplete() {
                    }

                    @Override
                    public void onError(Throwable e) {
                    }

                    @Override
                    public void onNext(String res) {
                        //I need to get value from out of mCompositeDisposable.add(...)
                        Log.i("LOG", res);
                    }
                }));

和 :

private Observable<String> observableSubject(String userName, String password) {
    return Observable.defer(() -> {
        //Some Code
        return Observable.just("Value");
    });
}

标签: androidrx-java2rx-android

解决方案


EventBus我用这种方法解决了我的问题:

@Override
public void onNext(String res) {
   //SomeCode .... 
   //.... EventBus.getDefault() ....
}

推荐阅读