网络通信框架Volley的学习(一)

一个app必须要涉及到通信,当然的方式也很多比如HttpURLConnection和HttpClient ,,AsyncTaskLoader等等,我只会用前两种==(重点是还不太熟练T_T)
Volley的由来:a burst or emission of many things or a large amount at once
Volley是Google I/O 2013大会上提出来的,Volley使Android通信的速度更快,更简单,更健壮。 Volley有很多优点:
1.JSON,图像等的异步下载
2.网络请求的排序(scheduling)
3.网络请求的优先级处理
4.缓存
5.多级别请求取消
6.和Activity和生命周期的联动(Activity结束的时候取消所有网络请求)
Volley项目地址:https://github.com/smanikandan14/Volley-demo
下载项目把volley.jar导入到项目即可,然后就是代码了
public class MainActivity extends Activity {
private RequestQueue queue;
String URL = "http://www.baidu.com";
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
queue = Volley.newRequestQueue(getApplicationContext());
textView = (TextView) findViewById(R.id.textView);
StringRequest request=new StringRequest(URL, new Response.Listener() {

@Override
public void onResponse(String response) {
// TODO Auto-generated method stub
textView.setText(response);

}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub

}
});

queue.add(request);
}
看代码应该马上就清楚了,总共三个步骤:
1.获取RequestQueue 对象
2.实例化StringRequest对象,在构造函数中传入三个参数,第一个是目标网址,第二个是获取到服务器数据成功回调的函数,第三个是失败的回调函数
3.将StringRequest实例添加到RequestQueue里
这样就完成了,是不是很简单!比我以前用HttpURLConnection一步步写简单多了。

接下去,我试着去获取天气网站天气信息的json数据,方法其实和之前差不多,这里知识用到了JSONObjectRequest.先看效果图吧
网络通信框架Volley的学习(一)_第1张图片
接着贴代码:
public class MainActivity extends Activity {
private RequestQueue queue;
String URL = "http://www.weather.com.cn/adat/sk/101010100.html";
private TextView textView;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
queue = Volley.newRequestQueue(getApplicationContext());
textView = (TextView) findViewById(R.id.textView);
JsonObjectRequest request = new JsonObjectRequest(URL, null,
new Response.Listener() {


@Override
public void onResponse(JSONObject response) {
// TODO Auto-generated method stub
textView.setText(response.toString());


}
}, new Response.ErrorListener() {


@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub


}
});
queue.add(request);
}
依然很简单,就先这样了,下次继续学下去

你可能感兴趣的:(Android开发日记)