强烈建议在阅读本文之前阅读取消请求章节。

如果你看了上面的文章,你会发现,取消请求虽然可以与ActivityFragment的生命周期绑定,但是每个Activity和Fragment都这么写就显得有点麻烦了,所以我们这里把这些操作写在BaseActivityBaseFragment中。

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();
}

推荐阅读
取消请求的几种方式
队列详解与封装