android常见框架基本使用之-Volley

在android开发一定阶段后不可避免的接触到网络连接,然后向往常一样查找android有关网络请求的实现,然后发现了HttpURLConnection和HttpClient,紧接着被一大串的代码吓到,不够人性啊,Android开源框架这么多,果断寻找相应的框架,于是便遇到了Volley。


Volley在2013年Google I/O大会上被提出:使得Android应用网络操作更方便更快捷;抽象了底层Http Client等实现的细节,让开发者更专注与产生RESTful Request。另外,Volley在不同的线程上异步执行所有请求而避免了阻塞主线程。


总结下Volley具有以下特点

  1. 自动调度网络请求
  2. 多个并发的网络连接
  3. 通过使用标准的HTTP缓存机制保持磁盘和内存响应的一致
  4. 支持请求优先级
  5. 支持取消请求的强大API,可以取消单个请求或多个
  6. 易于定制
  7. 健壮性:便于正确的更新UI和获取数据
  8. 包含调试和追踪工具

附github地址:https://github.com/mcxiaoke/android-volley


Volley的基本使用

一、构建一个请求队列

RequestQueue mQueue=Volley.newRequestQueue(getApplicationContext());


二、添加一个GET请求(以json对象为例)

mQueue.add(new JsonObjectRequest(Method.GET, url, null,  
            new Listener() {  
                @Override  
                public void onResponse(JSONObject response) { //请求成功回调函数 
                    Log.d(TAG, "response : " + response.toString());  
                }  
            }, null));  
mQueue.start(); 

三、图片请求

ImageRequest imageRequest = new ImageRequest(  
        url,  
        new Response.Listener<Bitmap>() {  
            @Override  
            public void onResponse(Bitmap response) {  
                imageView.setImageBitmap(response);  
            }  
        }, 0, 0, Config.RGB_565, new Response.ErrorListener() {  
            @Override  
            public void onErrorResponse(VolleyError error) {  
                imageView.setImageResource(R.drawable.default_image);  
            }  
        }); <span style="font-family: Verdana, Arial, Helvetica, sans-serif;"> </span>
参数详解1.图片资源地址 2.请求成功回调,3.4参数分别设定最大宽度高度,超出则压缩,0表示都不进行压缩 5.图片的编码格式 6.请求失败回调

 四、防止Activity销毁时产生crash

通常会在Activity重载生命周期函数中进行防守

@Override 
pubic void onStop() {  
    mQueue.cancelAll(this);  
}  
或通过取消某个设置的tag请求来防守


五、Volley总结

Volley适用于网络图片加载与json数据的获取,但遇到大数据也十分不好用需要进行很多的方法封装,故使用时请自行思考。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值