Android进阶-Volley-1.使用Volley

参考链接:

http://www.codekk.com/open-source-project-analysis/detail/Android/grumoon/Volley%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90

 

Volley-Demo下载地址:

https://github.com/android-cn/android-open-project-demo/tree/master/volley-demo

 

1.      导入Eclipse

将volley-demo(.\android-open-project-demo-master\volley-demo)导入eclipse后:Eclipse->File->Import->ExistingAndroid Code Into Workspace。导入后是一个HomeActivity,且会出现一堆R cannot be resolved to a variable的错误,重启一下Eclipse即可

2.      学习volley-demo

2.1   使用StringRequest

以下是StringRequest的发送按钮的监听器代码:

btnSend.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				if (StringUtil.isEmpty(etUrl.getText().toString())) {
					ToastUtil.showToast(getActivity(), "请输入请求地址");
					return;
				}
				//请求之前,先取消之前的请求(取消还没有进行完的请求)
				VolleyUtil.getQueue(getActivity()).cancelAll(this);
				tvResult.setText("");

				StringRequest request = new StringRequest(StringUtil.preUrl(etUrl.getText().toString().trim()),
						new Listener<String>() {

							@Override
							public void onResponse(String response) {
								tvResult.setText(response);

							}
						}, new ErrorListener() {

							@Override
							public void onErrorResponse(VolleyError arg0) {
								ToastUtil.showToast(getActivity(), getResources().getString(R.string.request_fail_text));

							}
						});
				//请求加上Tag,用于取消请求
				request.setTag(this);
				
				
				VolleyUtil.getQueue(getActivity()).add(request);

			}
		});

从代码中可以看出其主要是新建了一个StringRequest,然后通过add函数加入了请求队列RequestQueue中。

接下来看StringRequest的构造函数:

public class StringRequest extends Request<String> {
。。。
public StringRequest(String url, Listener<String> listener, ErrorListener errorListener);
。。。
}

其中Request是一个抽象类,Listener为接口。Request有构造函数:

public Request(int method, String url, Response.ErrorListener listener);
public Request(String url, Response.ErrorListener listener) {
        this(Method.DEPRECATED_GET_OR_POST, url, listener);
    }

Listener中有函数:

public voidonResponse(T response);

当系统将StringRequest处理完成后会回调该函数。本demo中系统回调onResponse,将收到的数据显示在TextView上。

 

3.      小结

使用Volley很简单,过程可分为两步:

  1. 建立请求队列RequestQueue rq = new Volley.newRequestQueue()
  2. 新建请求XXRequest,然后将请求加入队列rq中:rq.add(XXRequest);

今天先了解Volley的初步使用,下次将对Volley源码进行详细分析







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值