android中没有显示进度对话框?

时间:2011-05-13 03:56:03

标签: android progressdialog

我在点击Web服务时使用进度对话框并等待来自Web服务的响应,一旦我收到响应,我就会关闭进度对话框。这是我用于此的代码,

      dialog= ProgressDialog.show(Settings.this, "","Synchronisation with  server...", false);
      request = new SoapObject(NAMESPACE, METHOD_NAME);
      envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
      androidHttpTransport = new AndroidHttpTransport(URL);

      request.addProperty("mtest","1");


      envelope.setOutputSoapObject(request);
          try
          {
              System.gc();
              androidHttpTransport.call(SOAP_ACTION, envelope);
              SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;


              }
              }

              dialog.dismiss();
          }
          catch (Exception aE)
          {
              aE.printStackTrace ();;
          }

但是没有显示进度,如果我发送请求连接了Web服务,应用程序似乎处于空闲状态,并且在得到响应之前没有显示任何进度,我需要显示一些进展。

如果未连接Web服务,则会显示进度,但我们无法手动将其关闭。           我需要在点击Web服务时显示进度的指示,要么作为单独的进度,要么作为标题本身的一部分。如果有人知道请帮助我。

感谢。

2 个答案:

答案 0 :(得分:1)

尝试使用Handler将远程调用包装到辅助线程,或使用AsyncTask进行工作。

原因是,当您执行ProgressDialog.Show时,它会在下一次更新(在UI线程中)安排该节目,这与您连接Web服务的线程相同;因此,由于您的Web服务持有UI线程,因此它永远不会有机会这样做。

答案 1 :(得分:0)

很多人都面临着这个问题,即使我也面临同样的问题。对此最好的解决方案是使用异步任务。听到的是sample code。它可能对你有帮助。