2011-01-20 36 views
6

我想打開一個ProgressDialog,當我單擊打開Web服務中單擊項目數據的列表項時。 需要顯示ProgressDialog,直到打開點擊的物品的WebContent。Android中的ProgressDialog解僱

我知道使用進度對話框的代碼,但我不知道如何特別解僱它。

我聽說Handler是用來解除進度對話框的,但是我最終沒有找到任何有用的Handler的例子。

任何人都可以請告訴我如何使用處理程序來關閉進度對話框?

感謝, 大衛

回答

14

你好,這是你想要的

 public void onClick(View v) 
     { 
      mDialog = new ProgressDialog(Home.this); 
      mDialog.setMessage("Please wait..."); 
      mDialog.setCancelable(false); 
      mDialog.show(); 
      new Thread(new Runnable() 
      { 
       @Override 
       public void run() 
       { 
        statusInquiry(); 
       } 
      }).start(); 
     } 

這裏是互聯網web服務被稱爲

void statusInquiry() 
{ 
    try 
    { 
     //calling webservice 
        // after then of whole web part you will send handler a msg 
     mHandler.sendEmptyMessage(10); 
    } 
    catch (Exception e) 
    { 
     mHandler.sendEmptyMessage(1); 
    } 
} 

這裏進入處理程序代碼

Handler mHandler = new Handler() 
{ 
    public void handleMessage(android.os.Message msg) 
    { 
     super.handleMessage(msg); 

     switch (msg.what) 
     { 
      case 10: 
       mDialog.dismiss(); 
       break; 
        } 
      } 
     } 
}; 
0

一個solutiion可能是這樣的:

ProgressDialog progressDialog = null; 
    // ... 
    progressDialog = ProgressDialog.show(this, "Please wait...", true); 
    new Thread() { 
     public void run() { 
      try{ 
        // Grab your data             
      } catch (Exception e) { } 

      // When grabbing data is finish: Dismiss your Dialog 
      progressDialog.dismiss(); 
     } 
    }.start(); 
+2

這將導致崩潰如果活動被破壞你的`progressDialog.dismiss(前)`行 – Warpspace 2011-09-29 05:58:52