強烈建議在閱讀本文之前閱讀[取消請求](http://doc.nohttp.net/222886)章節。
如果你看了上面的文章,你會發現,取消請求雖然可以與`Activity`、`Fragment`的生命周期綁定,但是每個Activity和Fragment都這么寫就顯得有點麻煩了,所以我們這里把這些操作寫在`BaseActivity`、`BaseFragment`中。
## Base中的封裝
在Base中提供一個請求的方法,具體參數請結合自己的業務和習慣封裝。
```java
...
private Object cancelSign = new Object();
public <T> void request(int what, Request<T> request, OnResponseListener<T> 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)