volley中多级别取消请求Request

来源:互联网 发布:淘宝网商城玩具店 编辑:程序博客网 时间:2024/05/05 22:57

1.3 取消Request

      Activity里面启动了网络请求,而在这个网络请求还没返回结果的时候,Activity被结束了,此时如果继续使用其中的Context等,除了无辜的浪费CPU,电池,网络等资源,有可能还会导致程序crash,所以,我们需要处理这种一场情况。使用Volley的话,我们可以在Activity停止的时候,同时取消所有或部分未完成的网络请求。Volley里所有的请求结果会返回给主进程,如果在主进程里取消了某些请求,则这些请求将不会被返回给主线程。Volley支持多种request取消方式。
1)可以针对某些个request做取消操作:
 @Override    public void onStop() {        for (Request <?> req : mRequestQueue) {            req.cancel();        }    }

2)取消这个队列里的所有请求:

 @Override    protected void onStop() {        // TODO Auto-generated method stub        super.onStop();        mRequestQueue.cancelAll(this);    }

3)可以根据RequestFilter或者Tag来终止某些请求

  @Override    protected void onStop() {        // TODO Auto-generated method stub        super.onStop();        mRequestQueue.cancelAll( new RequestFilter() {});        or        mRequestQueue.cancelAll(new Object());    }

Volley支持http的GET、POST、PUT、DELETE等方法。

0 0