参考链接:
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很简单,过程可分为两步:
- 建立请求队列RequestQueue rq = new Volley.newRequestQueue()
- 新建请求XXRequest,然后将请求加入队列rq中:rq.add(XXRequest);
今天先了解Volley的初步使用,下次将对Volley源码进行详细分析
时间: 2024-10-12 17:24:42