2011-01-20 13 views
6

Tôi muốn mở một ProgressDialog khi tôi bấm vào mục danh sách mở dữ liệu của khoản mục được bấm tạo thành dịch vụ Web. ProgressDialog cần được xuất hiện cho đến khi WebContent của mục được mở được mở ra.ProgressDialog sa thải trong android

Tôi biết mã sử dụng Hộp thoại tiến trình nhưng tôi không biết cách loại bỏ đặc biệt.

Tôi đã nghe nói rằng Trình xử lý được sử dụng để loại bỏ Hộp thoại tiến trình nhưng tôi không tìm thấy bất kỳ ví dụ giá trị nào để sử dụng Trình xử lý cuối cùng.

Ai đó có thể cho tôi biết làm cách nào tôi có thể sử dụng Trình xử lý để loại bỏ Hộp thoại tiến trình?

Cảm ơn, david

Trả lời

14

Hi đây là những gì bạn muốn

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

đây là webservice web đó được gọi là

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); 
    } 
} 
.210

và ở đây đi mã xử lý

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

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

Một solutiion thể này:

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

Điều đó sẽ gây ra một vụ tai nạn nếu hoạt động này bị phá hủy trước khi bạn có thể 'cái progressDialog.dismiss() 'dòng – Warpspace