2013-12-13 53 views
1

如果我使用ProgressDialog.show()主調用2 AsyncTask。 AsyncTask A和AsyncTask B可能以不確定的順序完成,因此我在兩個AsyncTask中都將onOfficeExecute放置爲ProgressDialog.dismiss()android - 在解散前應該檢查ProgressDialog爲null嗎?

問題是我應該檢查兩個AsyncTask中的空值之前關閉對話框?

if(progressDialog != null && progressDialog.isShowing()){ progressDialog.dismiss(); } 

或者只是:

progressDialog.dismiss(); 

我不知道,如果ProgressDialog.dismiss()將處理這對我來說否則將拋出NullPointerException,如果我不解僱之前檢查空值。

+0

ProgressDialog無法將其自身設置爲null。所以,你可能會在某個地方做。 –

+0

@Tim,我認爲.dismiss()會破壞實例。也許我錯了。所以如果這就像你所說的那樣。調用.dismiss()多次,即使它被解僱也不應該導致像NullPointerException或崩潰應用程序的問題? – Boy

+0

不,多次打電話解僱()不應該崩潰或拋出NPE。 –

回答

0

java說這總是很好檢查null。但您必須progressDialog.isShowing() 否則您可能會在某個時間出現泄漏窗口異常。

0

您不需要檢查isShowing(),因爲它在內部處理。 不需要明確處理它。

相關問題