我怎样才能有一个带有进度条更新的排球请求链
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
没有用。
我有多个使用 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
没有用。