2012-03-09 4 views
1

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

button5.setOnClickListener(new View.OnClickListener() 
{ 
public void onClick(View v) 
{ 
    System.out.println("Button5"); 

    //Handler to make the please wait message 
    final ProgressDialog myProgressDialog = ProgressDialog.show(
      FoodSubstitutesActivity.this, "Please wait...", 
      "Getting most recent updates...", true); 
    Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() 
    { 
     @Override 
     public void run() 
     { 
      //DO STUFF - STOPS SPINNING WHEEL UNTIL THIS PART IS COMPLETE. 
      myProgressDialog.dismiss(); 
     } 

    }, 500); 
} 
}); 
+0

Вы блокируете потока пользовательского интерфейса – slezica

ответ

1

Почему вы не пытаетесь это сделать?

final ProgressDialog dialog = ProgressDialog.show(this, "Title", 
"Message", true); 
final Handler handler = new Handler() { 
    public void handleMessage(Message msg) { 
     dialog.dismiss(); 
     } 
    }; 
Thread checkUpdate = new Thread() { 
    public void run() { 
// 
// YOUR LONG CALCULATION (OR OTHER) GOES HERE 
// 
     handler.sendEmptyMessage(0); 
     } 
    }; 
checkUpdate.start(); 

взяты из: http://www.tutorials-android.com/learn/How_to_display_a_progress_dialog_while_computing.rhtml

+0

Это работало отлично! Благодаря! Почему вы должны отправить пустое сообщение в конце? –

0

использовать этот код, это может помочь вам,

   // TODO Auto-generated method stub 
       myProgressDialog = ProgressDialog.show(MainActivity.this, 
         "", "Please wait...."); 
       myProgressDialog 
         .setProgressStyle(ProgressDialog.STYLE_SPINNER); 

       new Thread() { 
        public void run() { 
         try { 

          Thread.sleep(1000); 
         } catch (Exception e) { 
         } 

         runOnUiThread(new Runnable() { 
          @Override 
          public void run() { 
           // do your action........... 
           finish(); 

          } 
         }); 
         // Dismiss the Dialog 
         myProgressDialog.dismiss(); 
        } 
       }.start(); 

Спасибо ...

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