Android Retrofit+RxJava 取消网络请求 发表于 2019-07-06 | 阅读次数: | 本文字数: 1.4k | 阅读时长 ≈ 1 分钟 可以通过Observer监听的onSubscribe回调方法中取得Disposable,然后通过Disposable对象来取消请求。 实例代码如下 123456789101112131415161718192021222324252627282930313233343536373839404142private Disposable loginDisposable;public void request() { Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .baseUrl("http://www.yeyuanxinyi.com/YeYuanXinYi") .build(); HttpService service = retrofit.create(HttpService.class); Observable<Account> observable = service.login("yeyuanxinyi", "123456"); observable.subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<Account>() { @Override public void onSubscribe(Disposable d) { // 在这里保存Disposable对象 loginDisposable = d; } @Override public void onNext(Account t) { } @Override public void onError(Throwable e) { } @Override public void onComplete() { } });}// 取消请求private void cancelLogin() { if (loginDisposable != null && !loginDisposable.isDisposed()) { loginDisposable.dispose(); }}