如何取消retrofit的网络请求
来源:5-3 Restful请求的处理-1
宝贝微笑
2019-08-08
老师,用课程中的retrofit封装框架如何取消这次的网络请求,在APP中有时候一个activity中请求了接口数据,速度比较慢这时候退出activity,退出后上个activity的数据回来了但是界面已经销毁,这样就会造成崩溃,如何在退出界面的时候把这个界面中的请求全部取消,不再接受请求的数据
写回答
1回答
-
慕斯卡2268586
2019-08-14
一般来说 retrofit 最好搭配 Rxjava 来使用,而 Rxjava 中的 CompositeDisposable 可以对所有请求进行管理,在 activity 销毁之前取消这个队列中的所有请求就行了
// 1. 新建 CompositeDisposable 对象
CompositeDisposable mCompositeDisposable = new CompositeDisposable();
//2. retrofit 请求的时候会返回一个 Disposable 对象,添加到队列中
mCompositeDisposable.add(disposable)
// 3. 在 onDestroy 时 clear 所有
mCompositeDisposable.clear()
00
相似问题