2012-07-27 5 views
0

моего кода:ProgressDialog не анимировать

public void showProgress(final Intent intent){ 
    progressDialog = ProgressDialog.show(this, "", "Loading.."); 

    new Thread(){ 
     public void run() { 
      try { 
       synchronized (this) { 
        startActivity(intent); 
        progressDialog.dismiss(); 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     }; 
    }.start(); 
} 

ProgressDialog показа, но ProgressBar не анимировать. Когда я использую wait (1000); вместо startActivity (намерение); он работает хорошо.

Может ли кто-нибудь помочь?

+0

Какова другая деятельность, которую вы запускаете. Поскольку вы запускаете другое действие, вам, вероятно, не нужно показывать индикатор прогресса. Продвинутый просто уйдет, так как вы переходите к новой деятельности. – FoamyGuy

ответ

1

Как только откроется диалоговое окно прогресса, вы начнете следующую операцию и отпустите ее. В диалоговом окне прогресса на самом деле нет точки, поскольку вы не выполняете фоновой обработки.

Когда вы используете wait(1000);, программа ждет 1000 мс, прежде чем отклонить индикатор выполнения и, таким образом, вы сможете увидеть его вращение.


Edit:

Просто используйте этот код:

public void showProgress(final Intent intent){ 
    startActivity(intent); 
} 
+0

Я пытаюсь удалить progressDialog.dismiss(); Неудачно. Это единственное, что нужно, чтобы скрыть диалог, когда я вернусь к форме следующего действия. – user1558070

+0

См. Мой обновленный ответ. –

0

вызова progressDialog.dismiss в методе OnPause.

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