2012-02-21 10 views
1

在我的活動中,我從Web服務加載一些數據,在此期間,我向用戶顯示ProgressDialog ...我希望用戶能夠按關閉D- Pad鍵。 我已經做如下它:ProgressDialog的OnCancelListener上的整理活動不起作用

public class MyActivity implements OnCancelListener { 
    /* ... */ 

    public void startDialog() { 
     ProgressDialog pd = ProgressDialog.show(
      MyActivity.this, // Context 
      "",     // title for dialog 
      "Loading...",  // message for dialog 
      true,    // indeterminate? 
      true,    // cancellable? 
      this    // onCancelListener() 
     ); 
    } 

    @Override 
    public void onCancel(DialogInterface dialog) { 
     // I want to finish() this activity when dialog is canceled 
     finish(); 
    } 
} 

你可以看到,我整理當前活動在onCancel() Dialog的OnCancelListener接口的方法。但是在對話框可見時按下BACK時不會調用此方法。該對話框消失,但onCancel未被調用。

Y?

回答

2

也許它是android限制。嘗試使用處理器

public class MyActivity implements OnCancelListener { 
    /* ... */ 

    private Handler mHandler = new Handler(){ 

     @Owerride 
     public void handleMessage(Message message) { 
     switch (message.what) { 
     case 1:{ 
      finish(); 
     } break; 
      } 
     } 
    }; 

    public void startDialog() { 
     ProgressDialog pd = ProgressDialog.show(
      MyActivity.this, // Context 
      "",     // title for dialog 
      "Loading...",  // message for dialog 
      true,    // indeterminate? 
      true,    // cancellable? 
      this    // onCancelListener() 
     ); 
    } 

    @Override 
    public void onCancel(DialogInterface dialog) { 
     mHandler.sendEmptyMessage(1); 
    } 
} 
+0

是的..這工作...非常感謝你..非常感謝 – Aamir 2012-02-22 10:34:56