强烈建议在阅读本文之前阅读取消请求章节。
如果你看了上面的文章,你会发现,取消请求虽然可以与Activity
、Fragment
的生命周期绑定,但是每个Activity和Fragment都这么写就显得有点麻烦了,所以我们这里把这些操作写在BaseActivity
、BaseFragment
中。
Base中的封装
在Base中提供一个请求的方法,具体参数请结合自己的业务和习惯封装。
...
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();
}