Диалог прогресса не отображается в Android? - PullRequest
3 голосов
/ 11 мая 2011

когда диалоговое окно прогресса не отображается в Android?я хочу знать обстоятельства, когда может произойти вышеперечисленное:

в моем случае диалоговое окно прогресса не показывалось в этом случае:

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

каково общее правило с диалоговыми окнами?

Заранее спасибо.

РЕДАКТИРОВАТЬ при выполнении команды .show () должно появиться диалоговое окно прогресса.Но когда вызывается otherfucntion (), останавливается ли предыдущая команда progressdialog show?

Ответы [ 3 ]

3 голосов
/ 11 мая 2011

Похоже, вам нужно использовать AsyncTask пользовательский интерфейс (включая progressDialog) не будет обновляться, если поток пользовательского интерфейса все еще занят.Для этого в SO есть много примеров.

И, как правило, - , если вам нужно диалоговое окно Progress - вам нужен AsyncTask .

Это не та командаостанавливается, просто если вы выполняете последовательность методов в потоке пользовательского интерфейса, пользовательский интерфейс, вероятно, не будет обновлен до тех пор, пока последовательность не закончится, то есть после progressDialog.dismiss(), поэтому progressDialog больше не должен отображаться.

1 голос
/ 11 мая 2011

Я думаю, вы должны сделать это в своей деятельности.

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();
            }
        }
 }
0 голосов
/ 11 мая 2011

Чтобы показать ProgressDialog, используйте

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

А когда вы выполнили задание, используйте

progressDialog.dismiss();

чтобы закрыть ProgressDialog ..

Вы можете вызвать отображение ProgressDialog в вашем методе onPreExecute класса AsyncTask, а когда вы закончили, отклоните его в методе onPostExecute

...