小编mat*_*tio的帖子

如何取消订阅rxJava请求

我有以下类,我想返回Subscription对象或其他东西,所以我可以从我引用subscribe()方法的地方取消请求,但是subscribe(observer)返回void!我怎样才能做到这一点?

public abstract class MainPresenter<T> {
protected <T> Disposable subscribe(Observable<T> observable, Observer<T> observer) {
observable.subscribeOn(Schedulers.newThread())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(observer);

}
Run Code Online (Sandbox Code Playgroud)

[ 新更新 ]我用这种方式暂时,我在等待更好的解决方案:

    protected <T> DisposableMaybeObserver subscribe(final Maybe<T> observable,
                                                final Observer<T> observer) {
    return observable.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeWith(new DisposableMaybeObserver<T>() {
                @Override
                public void onSuccess(T t) {
                    observer.onNext(t);
                }

                @Override
                public void onError(Throwable e) {
                    observer.onError(e);
                }

                @Override
                public void onComplete() {
                    observer.onComplete();
                }
            });
}
Run Code Online (Sandbox Code Playgroud)

[ 新更新2 ] [![截图] [ https://i.stack.imgur.com/mioth.jpg]]

[ 新更新3 ] [Screenshot2] 1

java android rx-java2

1
推荐指数
1
解决办法
2452
查看次数

标签 统计

android ×1

java ×1

rx-java2 ×1