使用齐射进行网络操作时如何显示ProgressDialog

N S*_*rma 4 java android android-volley

我在一个Android应用程序上工作,我非常有兴趣使用volley库来执行网络http调用.

但我的问题是我发现这个库在不同的后台线程中进行操作然后我怎么能显示ProgressDialog何时http请求开始执行然后在执行后解除它.

RequestQueue rq = Volley.newRequestQueue(this);
StringRequest postReq = new StringRequest(Request.Method.POST, "http://httpbin.org/post", new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        tv.setText(response); // We set the response data in the TextView
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        System.out.println("Error ["+error+"]");

    }
});
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Hun*_*der 23

这很直接.在队列中添加请求对象后,启动进度对话框.

//add the request to the queue
rq.add(request);

//initialize the progress dialog and show it
progressDialog = new ProgressDialog(getActivity());
progressDialog.setMessage("Fetching The File....");
progressDialog.show();
Run Code Online (Sandbox Code Playgroud)

然后在收到服务器的响应后关闭对话框.

StringRequest postReq = new StringRequest(Request.Method.POST, "http://httpbin.org/post", new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        tv.setText(response); // We set the response data in the TextView
        progressDialog.dismiss();
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Log.e(“Volly Error”,”Error: ”+error.getLocalizedMessage());
        progressDialog.dismiss();
    }
});
Run Code Online (Sandbox Code Playgroud)