取消请求的封装
最后更新于:2022-04-01 23:20:33
强烈建议在阅读本文之前阅读[取消请求](http://doc.nohttp.net/222886)章节。
如果你看了上面的文章,你会发现,取消请求虽然可以与`Activity`、`Fragment`的生命周期绑定,但是每个Activity和Fragment都这么写就显得有点麻烦了,所以我们这里把这些操作写在`BaseActivity`、`BaseFragment`中。
## Base中的封装
在Base中提供一个请求的方法,具体参数请结合自己的业务和习惯封装。
```java
...
private Object cancelSign = new Object();
public void request(int what, Request request, OnResponseListener listener) {
// 这里设置一个sign给这个请求。
request.setCancelSign(cancelSign);
queue.add(this, what, request, listener);
}
@Override
protected void onDestroy() {
// 在组件销毁的时候调用队列的按照sign取消的方法即可取消。
queue.cancelBySign(cancelSign);
super.onDestroy();
}
```
**推荐阅读**
[取消请求的几种方式](http://doc.nohttp.net/222886)
[队列详解与封装](http://doc.nohttp.net/222881)
';