我是一名Android初学者。我想知道为什么我们应该在代码中使用RequestQueue并将JsonObjectRequest传递给RequestQueue作为参数。
排球使用两个类,RequestQueue和Request
RequestQueue是所有必须排队执行的请求的队列,它还管理工作线程并在后台维护网络调用,还处理从缓存中读取和写入缓存,还解析响应并将解析后的响应传递到主线程。
Request是构建网络请求的地方。request对象有3个主要请求:
JsonObjectRequest —在给定URL上检索JSONObject响应主体的请求。
JsonArrayRequest —用于从服务器检索JSON数组。
请求带有3个传递给构造函数的参数。
JsonObjectRequest和JsonArrayRequest的实现的代码段如下:
String mJSONURLString= "json_url";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, mJSONURLString, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
//add JsonObjectRequest request to queue
requestQueue.add(jsonObjectRequest);
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
//add JsonArrayRequest to queue
requestQueue.add(jsonArrayRequest);
StringRequest —从服务器检索响应主体作为String。
程式码片段如下:
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Do something with the response
}
},
程式码片段如下:
String mImageURLString= "";
ImageRequest imageRequest = new ImageRequest(mImageURLString= , new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
// Assign the response to an ImageView
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageBitmap(response);
}
}, 0,0, null);//Image width,Image height
//add request to queue
requestQueue.add(imageRequest);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句