Volley超时操作

volley框架简介

Volley是一个由Google官方推出的网络通信库,它使得Android进行网络请求时更加方便、快速、健壮,同时对网络图片加载也提供了良好的支持。Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。

 

 

 

volley框架主要对象及方法

 

1.用单例模式获取RequestQueue对象

public class MySingleton {

    private static MySingleton mInstance;
    private RequestQueue mRequestQueue;
    private static Context mCtx;

    private MySingleton(Context context) {
        mCtx = context;
        mRequestQueue = getRequestQueue();
    }

    /**
     * 获取对象静态方法
     */

    public static synchronized MySingleton getInstance(Context context) {
        if (mInstance == null) {
            mInstance = new MySingleton(context);
        }
        return mInstance;
    }

    /**
     * 获取volley对象
     */

    public RequestQueue getRequestQueue() {
        if (mRequestQueue == null) {
            mRequestQueue = Volley.newRequestQueue(mCtx.getApplicationContext());
        }
        return mRequestQueue;
    }

}

 

 

 

 

 

 

2.在java代码模块获取RequestQueue对象并使用

 

2.1.获取对象

mRequestQueue=MySingleton.getInstance(this).getRequestQueue();

 

 

 

2.2.使用 这里以StringRequest为例(get)

    private void volleyGetMethod(final Stirng url) {
        StringRequest request = new StringRequest(Method.GET, url, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {
                parseObject(response);
            }
        }, new ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                loadingtv.setVisibility(View.VISIBLE);
                layout.setVisibility(View.GONE);
                loadingtv.setText(StringUtils.getFailureString());
            }
        });
    }

 

 

 

2.这里以StringRequest为例(post)

private void volleyPostMethod(final String url){
        
        StringRequest request=new StringRequest(Method.POST, url, new Response.Listener<String>() {
            
            @Override
            public void onResponse(String response) {
                parseImgObject(response);
            }
        }, new ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                toast.showToast(StringUtils.getFailureString());
            }
        }){
            @Override

            protected Map<String, String> getParams() throws AuthFailureError {
                HashMap<String, String> params=new HashMap<String, String>();
                params.put("key", uid);
                params.put("images", stream);
                return params;
            }
        };
    }

 

 

 

3.将XXRequest添加到RequestQueue队列中

mRequestQueue.add(request);

 

 

 

4.销毁RequestQueue

if(mRequestQueue!=null){

    mRequestQueue.cancelAll(this);

}

 

 

 

 

 

5.其他XXRequest

JsonObjectRequest:返回JSONObject对象。

JsonArrayRequest:返回JsonArray对象。

StringRequest:返回String对象。

ImageRequest显示图片。

 

 

6.volley框架总结

Volley可以直接在UI线程中请求数据更新UI,不必在新开子线程请求数据。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值