类:
public class SingleVolleyRequestQueue {
//私有化属性
private static SingleVolleyRequestQueue singleQueue ;
private RequestQueue requestQueue;
private static Context context;
//是有化构造
private SingleVolleyRequestQueue(Context context){
this.context = context;
requestQueue = getRequestQueue();
}
//提供请求队列的方法
private RequestQueue getRequestQueue() {
if (requestQueue == null){
requestQueue = Volley.newRequestQueue(context);
}
return requestQueue;
}
//获取类对象的方法
public static synchronized SingleVolleyRequestQueue getInstance(Context context){
if (singleQueue == null){
singleQueue = new SingleVolleyRequestQueue(context);
}
return singleQueue;
}
public <T> void addToRequestQueue(Request<T> req){
//requestQueue.add(req);为了防止回收造成空指针异常,一般不用
getRequestQueue().add(req);
}
}
使用方法
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String s) {
dialog.dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return super.getHeaders();
}
};
SingleVolleyRequestQueue.getInstance(this).addToRequestQueue(stringRequest);