2012-03-09 100 views
1

我在我的android应用程序中创建了一个ProgressDialog。但是我遇到的问题是,在实际上停止旋转车轮的过程中。这是我的代码。我如何做到这一点,以便在我的其他工作正在进行时不断旋转车轮?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

您阻塞UI线程 – slezica 2012-03-09 04:32:57

回答

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

这真是棒极了!谢谢!为什么最后你必须发送一个空的消息? – 2012-03-09 04:33:41

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(); 

谢谢...