2011-10-17 78 views

回答

2

是似乎是內實現檢查:

public void dismiss() { 
    if (Thread.currentThread() != mUiThread) { 
     mHandler.post(mDismissAction); 
    } else { 
     mDismissAction.run(); 
    } 
} 

private void dismissDialog() { 
    if (mDecor == null || !mShowing) { 
     return; 
    } 

    try { 
     mWindowManager.removeView(mDecor); 
    } finally { 
     mDecor = null; 
     mWindow.closeAllPanels(); 
     onStop(); 
     mShowing = false; 

     sendDismissMessage(); 
    } 
} 
8

你不應該檢查isShowing解僱它。如果你不檢查isShowing,它只會忽略解除()是進度條不顯示。

但檢查isShowing是一種好的做法。所以它不會受到傷害繼續檢查它。

0

如果你只有一個地方在你的代碼中調用dismiss(),那麼沒有。您應該知道當時是否顯示對話框。

但是,我已經遇到了ProgressDialogs和方向改變的一些問題,這導致需要有多個地方可能會被忽略對話,因此需要檢查isShowing()

0

檢查source code,如果它在代碼中處理,您不必擔心。如果沒有完成處理,您可以選擇創建更具風險但速度雖然很慢但安全性較低的環境。

相關問題