准备步骤
-
git clone https://android.googlesource.com/platform/frameworks/volley
-
导入项目,再export Jar包,推荐导出为带有源码的,便于查看源码
图片加载
同时Volley还为开发者提供了一个直接加载网络url的ImageView---NetworkImageView,使用起来更加的方便。
HTTP请求
Volley支持Http请求的所有八种方法,支持请求成功和失败的回调。还支持设置超时时间、失败后的重连次数、设置url缓存、以及为请求设置Tag,便于中断Request请求。请求成功的话,支持接收String、JsonObject和自定义bean,请求失败的话VolleyError有很多子类,也方便排查网络请求失败的原因。
GET请求的实现如图
如果需要添加请求参数的话,可以去复写Request中的getParams()方法,返回一个装有请求参数的Map集合就Ok了。同时如果中断请求线程也很简单,可以通过请求的引用直接cancel,也可以通过
RequestQueue.cancelAll(TAG_REQUEST)基于请求绑定的tag去中断。这样就避免了页面结束而仍有后台无用线程运行的现象了。Volley还支持网络请求的优先级、排序等。
写在最后:花了半天的时间研究Volley,发现它试用的两个场景。一是网络图片加载,二是网络请求返回json格式的数据。但是它的优势并不明显,其他第三方的图片加载框架和网络请求框架,无论都api的简洁易用方面看,还是扩展功能方面看都比它优秀。我推荐大家加载图片就使用Android-Universal-ImageLoader,网络请求的话,android-async-http,okHttp都是不错的选择。如果不想使用网络请求的框架,AndroidHttpUtil也是个很好选择。或许是我没发现它的好,如果有朋友有啥异议,欢迎留言。
Volley demo地址:https://github.com/smanikandan14/Volley-demo
AndroidHttpUtil源码地址:https://github.com/JackCho/AndroidHttpUtil
转载:http://my.oschina.net/jack1900/blog/297311?p=1