在网络通话期间显示进度条

时间:2011-02-10 06:33:47

标签: android

我想在Web服务调用期间显示进度条。我在调用服务之前调用了进度条,但是在服务调用完成后我才收到响应。

ProgressDialog dialog = ProgressDialog.show(LogIn.this,"","Loading. Please wait...", true);

 status=Loginvalid(method,username,psword); //calling the method for making service call

但是,在从服务收到响应后,将启动进度对话框。 请问我该如何解决这个问题..

3 个答案:

答案 0 :(得分:3)

  public class Progress extends AsyncTask<String, Void, Void> {



        protected void onPreExecute() {
            ProgressDialog dialog = new MyProgressDialog(MyActivity.this, "Loading.. Wait..");
            dialog.show();
        }

        @Override
        protected Void doInBackground(String... params) {
            // TODO Auto-generated method stub


                    // do your network connection

            return null;
        }

        protected void onPostExecute(Void unused) {
            dialog.dismiss(); 

        }

    }

答案 1 :(得分:2)

使用AsyncTask。这是在Web服务调用期间显示进度对话框的最有效,最轻松的方式。

显示preexecute上的进度条,在doInBackground方法中调用web服务,并关闭onPostexecute上的进度条。

http://developer.android.com/reference/android/os/AsyncTask.html

答案 2 :(得分:0)

为了正确显示进度对话框,必须在UIThread上执行,而所有其他工作(service call) - 在另一个中执行。请参阅示例here