2013-09-15 3 views
0

Я хочу поставить ProgressDialog на свою программу при вычислении чего-то. Я пробовал много вещей, но любой из них помогает мне. Вот мой код;Не показывать прогресс Диалог

   dialog=ProgressDialog.show(this, "calculating", "Please wait while the calculation is getting done.",true); 

       this.runOnUiThread(new Runnable() { 

        @Override 
        public void run() { 
         // TODO Auto-generated method stub 

       changeHelp = 0; 

       if(screenNumber == 1){ 
        compareImages(3.3, 0.12); 
       } 

       else if(screenNumber==2 || screenNumber == 4){ 
        compareImages(1.4, 0.1); 
       } 
       else if (screenNumber == 3) 
        compareImages(0.41, 0.1); 
       else 
        compareImages(3.3, 0.0676); 

       dialog.dismiss(); 

       screenNumber++; } 
     }); 

Есть много вопроса там об этом problem.Although я попробовал многие из них, я не мог иметь дело с problem.I не хочу использовать asynctask.Pls помочь мне.

---- ---- РЕДАКТИРОВАТЬ

Я добавил Thread.Sleep (2000) в попытке, но это еще не working.I думать, что я делаю что-то не так в то время как положить dialog.dismiss но ı не мог найти, где проблема?

ответ

0

Я думаю, что ваш ProgressDialog был показан, но очень мало времени, потому что вы не выполняете задачу, которая длится как минимум секунду, но гораздо короче.

Если вы хотите достичь своей цели, лучше всего использовать AsyncTask, да, вы не хотите его использовать, но для своей цели AsyncTask - это лучший подход, который вы можете использовать.

Но как обходное решение существует способ Thread.sleep() для моделирования некоторой задачи, которая «прослужит» дольше. Но вам нужно позвонить из backround Thread (чтобы избежать зависания UI). Продвижение диалогов - это то, что можно отклонить от любого типа Thread.

+0

У меня есть thread.sleep (2000), но он все еще не работает. Думаю, я что-то делаю неправильно. –

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