您的位置:首页 > 理论基础 > 计算机网络

Android网络框架-Volley(一) 工作原理分析

2017-05-10 23:05 344 查看
使用Volley可以让我们轻松访问网络,不用每次都要写大量重复的代码,而且它是异步的,不用我们再去写异步任务,这样代码非常简洁。还有很重要的一点,他还可以异步加载图片并且有缓存机制,防止OOM发生,Volley把该干的全都干了,我们只需要专注于我们自己的业务逻辑就可以了。Volley适合于小数据量,多次数的网络访问情况,比如常见的一个listview,每行都是从网络上获取的一个图片和几行文本,使用Volley就再适合不过了,而且代码非常简单。

我们先来看一段代码

[/i]  1
[/i]  2
[/i]  3
[/i]  4
[/i]  5
[/i]  6
[/i]  7
[/i]  8
[/i]  9
[/i] 10
[/i] 11
[/i] 12
[/i] 13
[/i] 14
[/i] 15
[/i] 16
[/i] 17
[/i] 18
[/i] 19
[/i] 20
[/i] 21
[/i] 22
[/i] 23
[/i] 24
[/i] 25
[/i] 26
[/i] 27
[/i] 28
[/i] 29
[/i] 30
[/i] 31
[/i] 32
[/i] 33
[/i] 34
[/i] 35
public class MainActivity extends Activity {    private TextView tv_content;
@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv_content = (TextView) findViewById(R.id.tv_content);        //通过Volley.newRequestQueue就可以非常简单的创建出一个RequestQueue        RequestQueue queue = Volley.newRequestQueue(this);        //我们要请求的地址,这个地址会返回一些html数据        String url = “http://www.baidu.com”;        //StringRequest是Volley提供的一个专门用于请求字符串类型数据的Request        //第一个参数是要访问的地址        //第二个参数是一个回调接口,在onResponse()方法里我们可以直接给textview设置内容,因为Volley将已经加工好的数据直接返回给了主线程。        //因此onResponse是工作在主线程的,我们可以直接更新UI        //第三个参数是在出现错误后的一个回调接口,在onErrorResponse()中我们可以得到错误信息,他也是工作在主线程的        StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override         public void onResponse(String response) {              tv_content.setText(response);          }                }, new Response.ErrorListener() {
@Override         public void onErrorResponse(VolleyError error) {               tv_content.setText(“出错了”+error.getMessage());         }      });        //将这个Request添加到RequestQueue中,Volley就开始工作了        queue.add(stringRequest);    }}
//
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  volley