【问题标题】:How to display the ProgressDialog when do network operations using volley使用 volley 进行网络操作时如何显示 ProgressDialog
【发布时间】:2014-05-30 19:44:07
【问题描述】:

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

但我的问题是,我发现这个库在不同的后台线程中执行操作,然后如何在 http 请求开始执行时显示ProgressDialog,然后在执行后将其关闭。

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+"]");

    }
});

提前致谢。

【问题讨论】:

  • 您根据请求显示一个并在 onResponse 或 onErrorResponse 中将其关闭。
  • @greenapps 你能给我举个例子吗?
  • 有什么问题?只需在您发布的代码之前创建一个 ProgressDialog。或者此时您将 postReq 放入队列中。并给他看。还是有 onStart 事件?

标签: java android android-volley


【解决方案1】:

这很简单。在队列中添加请求对象后启动进度对话框。

//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();

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

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();
    }
});

【讨论】:

  • 如果在方向更改期间重新创建活动而不使用清单中的 configChanges,我们如何处理进度对话框?
  • 这个答案不是一个完整的解决方案。如果改变方向怎么办?如果您按取消进度怎么办 - 网络操作在哪里取消?
  • 这是一个非常古老的问题,与这个问题和解决方案有些无关。如果您不够小心处理,方向更改可能会导致任何活动/视图出现问题。请参阅此处了解更多信息:androiddesignpatterns.com/2013/04/…。您还可以在 SO 中查看有关此问题的讨论。一个例子是这个:stackoverflow.com/a/5336057/3784165
猜你喜欢
  • 1970-01-01
  • 2011-04-23
  • 1970-01-01
  • 1970-01-01
  • 2018-11-27
  • 2019-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多