排球请求跟踪

时间:2017-04-30 10:25:24

标签: java android android-volley

我正在使用凌空库来使用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);
    }

1 个答案:

答案 0 :(得分:0)

  1. 排球according to the documentation,不适合长时间操作,这意味着它不适合您的需要

  2. 您可以扩展您正在使用的请求类型并添加自定义字段,然后编写RequestFilter,根据回复的返回值找到下一个项目

  3.   

    Volley不适合大型下载或流媒体操作,   因为Volley在解析期间将所有响应保存在内存中。对于大   下载操作,考虑使用替代方案   下载管理器。