2011-06-30 2 views
0

в моем приложении, когда я нажимаю кнопку Я получаю некоторые данные из сети, и я открываю новую активность. В то время я пытаюсь показать индикатор выполнения на экране. Ниже приведен мой кодпроблема с диалоговом окне прогресса в android

dialog = new ProgressDialog(SearchPage.this); 
    dialog.setMessage("Please wait..."); 
    dialog.setIndeterminate(true); 
    dialog.show(); 
    new Thread() { 
    public void run() { 
    try { 
     Thread.sleep(300); 
     } 
    catch (InterruptedException e) 
      { 
      e.printStackTrace(); 
     }    
     getWebPageContents(url); 
      Intent myIntent = new Intent(getBaseContext(), SearchList.class); 
     startActivityForResult(myIntent, 0); 
       } 
       }.start(); 

Приложение работает нормально, и рабочий диалог также работает. Теперь проблема заключается в том, что когда я нажимаю кнопку «Назад» от второго действия, первая активность открывается, и диалог прогресса запускается и работает непрерывно, не останавливаясь.

Он останавливается, если я нажимаю кнопку «Назад». Я не хочу, чтобы диалог прогресса просматривался, когда я возвращался к первому действию. Как это сделать ........

+0

Итак, в вашем первом действии вы запускаете ProgressDialog, затем вы начинаете действие, в котором диалог не отображается, и когда вы возвращаетесь к своей первой операции, вы хотите, чтобы ProgressDialog исчезла? – nhaarman

+0

yesssssssssssss –

+0

Лучший способ - использовать 'AsyncTask' [Tutorial] (http://www.xoriant.com/blog/mobile-application-development/android-async-task.html) –

ответ

3

Позвоните dialog.dismiss() перед началом нового мероприятия. Надеюсь это поможет.

1

Добавьте следующий код после

startActivityForResult(myIntent, 0); 
dialog.dismiss(); 
0

Добавьте следующий код после

dialog.setMessage("Please wait..."); 
dialog.setCancelable(false); 
1

Вы можете закрыть окно непосредственно после вызова на операцию по телефону

dialog.dismiss(); 

после

startActivityForResult(myIntent, 0); 

Если вы хотите, чтобы закрыть диалоговое окно только тогда, когда вы вернулись из этой деятельности, вы должны убедиться, что dialog является полем, и вызвать dialog.dismiss(); в onActivityResult (Вы можете проверить dialog != null первым).

Смежные вопросы