2011-01-20 72 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