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

时间:2011-05-11 06:51:29

标签: android progressdialog

什么时候进度对话框没有在android中显示?我想知道上述情况发生时的情况:

在我的情况下,在这种情况下没有显示进度对话框:

func{
    progressdialog.show();
    ....
    .....
    anotherfunction();
    listview.setAdapter();
    progressdialog.dismiss();
   }

对话框的一般经验法则是什么?

提前谢谢。

修改 执行.show()命令时,应显示进度对话框。但是当调用otherfucntion()时,progressdialog的上一个命令是否显示停止?

3 个答案:

答案 0 :(得分:3)

似乎你需要使用AsyncTask如果UI线程仍然忙,UI将不会更新(包括progressDialog)。 SO中有很多例子。

根据经验 - 如果你需要进度对话框, - 你需要AsyncTask

不是任何命令都停止,只是如果你在UI线程上执行一系列方法,那么在序列结束之前可能不会更新UI,这在progressDialog.dismiss()之后,所以不应再显示progressDialog。

答案 1 :(得分:1)

我认为你必须在你的活动中这样做。

ProgressDialog _progressDialog = ProgressDialog.show(this,"Saving Data","Please wait......");
settintAdater();

 private void settingAdater(){

        Thread _thread = new Thread(){

            public void run() {

                Message _msg = new Message();
                _msg.what = 1; 
                 // Do your task where you want to rerieve data to set in adapet
                YourCalss.this._handle.sendMessage(_msg);
            };
        };
        _thread.start();
    }
 Handler _handle = new Handler(){

        public void handleMessage(Message msg) {

            switch(msg.what){

                case 1:
                    _progressDialog.dismiss();
                     listview.setAdapter();
            }
        }
 }

答案 2 :(得分:0)

显示ProgressDialog使用

ProgressDialog progressDialog = ProgressDialog.show(PrintMain.this, "", 
                    "Uploading Document. Please wait...", true);

完成任务后

progressDialog.dismiss();

关闭ProgressDialog ..

您可以致电onPreExecute AsyncTask类的onPostExecute方法中显示ProgressDialog,并在{{1}}方法完成后将其解除