在我的应用程序中,我正在将图像和文本响应上载到我的服务器。我想在上传时显示一个带有百分比的进度对话框。
这是我的密码,
调用截击函数的代码:
//look at send data to server
// Send to server .calling my volley function
new NetworkController(context).sendAuditData(row, URL_Config.SAVE_AUDIT);
我的截击代码发送数据到服务器,
public void sendAuditData(final HashMap<String,String> audit_data,final String url)
{
// HttpsTrustManager.allowAllSSL();
createProgressDialog();
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
String val[] = response.split(",");
if(val[0].equalsIgnoreCase("success")){
Toast.makeText(context,"Data submitted successly",Toast.LENGTH_SHORT).show();
CheckSuiteDAOI dao = new CheckSuiteDAO(context);
ContentValues cv = new ContentValues();
cv.put("sync_status","true");
dao.update_data(cv,"date_time=?",new String[] {val[1]},"CONTAINER_MASTER");
successDialog(audit_data);
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
dismisProgressDialog();
}
}){
@Override
protected Map<String,String> getParams(){
return audit_data;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(context);
int socketTimeout = 5000;//7seconds - change to what you want
RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(policy);
requestQueue.add(stringRequest);
}
最佳答案
我想显示一个进度对话框--可能
上传时使用百分比--不可能。这是由数据块进行的多部分上传。还需要API支持。
想想10MB文件你的上传,你设置了5个线程,上传了2MB。所以上传2个线程成功40%完成。它就是这样工作的。