我怎样才能有一个带有进度条更新的排球请求链

How can I have a chain of volley requests with progress bar updates

我有多个使用 volley 的 HTTP(JSON 对象)请求。最初我让他们同时开火。现在我将它们链接在一起,就像当一个请求得到响应并执行另一个请求时,等等。列表太长,无法在此处显示,但这里有一个简化的示例:

//first request
    JsonObjectRequest request = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>()
    {
        @Override
        public void onResponse(JSONObject response)
        {
//second request
            JsonObjectRequest request = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>()
            {
                @Override
                public void onResponse(JSONObject response)
                {
//another request here...
                }
            }, new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error)
                {
                    Log.e("Volley Error", error.toString());
                }
            })
//first request continues
        }
    }, new Response.ErrorListener()
    {
        @Override
        public void onErrorResponse(VolleyError error)
        {
            Log.e("Volley Error", error.toString());
        }
    })

我希望进度条在每次回复后显示 xx%。我已经尝试 runOnUIThread 并尝试使用 'onProgressUpdate' 将整个代码块包装在 'AsyncTask' 中。但是不行。

如何正确地合并进度更新?

我试图使用一个不起作用的数学表达式 - 所以进度条没有移动。

当我用简单的等式(如下)代替一个数字时,效果很好。

我为请求总数设置了一个变量。我想通过每个百分比,所以我尝试了 (1 / num) * 100。然后我意识到它把它当作一个整数来处理,所以我在前面添加了 (float) 。通过调试,我发现括号中的部分与预期的一样好。但是 * 100 没有用。