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

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

我们先来看一段代码

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 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 );
}
}

//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值