我正在使用凌空库来使用Restful API上传图像 我做了多个图片上传请求,并将所有这些添加到RequestQueue中。 请求完成后,我想根据请求执行本地数据库操作,但
现在问题是如何跟踪每个请求的进度
我如何知道哪个请求已完成?
我如何标记请求? 任何方式?
代码:
StringRequest stringRequest = new StringRequest (Request.Method.POST, Constants.IMAGE_UPLOAD_URL,
new Response.Listener<String> ( ) {
@Override
public void onResponse(String s) {
Log.e (TAG, s.toString ( ));
}
},
new Response.ErrorListener ( ) {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
//Creating parameters
Map<String, String> params = new Hashtable<String, String> ( );
//Adding parameters
params.put ("file_contents", imageString);// image string
params.put ("file_name", filenameString);//profile image in name
return params;
}
};
stringRequest.setRetryPolicy (new DefaultRetryPolicy (DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 2, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
//Adding request to the queue
if (requestQueue==null)
requestQueue= Volley.newRequestQueue (this);
requestQueue.add (stringRequest);
}
答案 0 :(得分:0)
排球according to the documentation,不适合长时间操作,这意味着它不适合您的需要
您可以扩展您正在使用的请求类型并添加自定义字段,然后编写RequestFilter
,根据回复的返回值找到下一个项目
Volley不适合大型下载或流媒体操作, 因为Volley在解析期间将所有响应保存在内存中。对于大 下载操作,考虑使用替代方案 下载管理器。