2013-12-13 2 views
1

메인에 ProgressDialog.show()을 사용하면 2 AsyncTask가 호출됩니다. AsyncTask A와 AsyncTask B는 둘 다 AsyncTask에서 onPostExecute에 ProgressDialog.dismiss()을 넣기 위해 결정되지 않은 순서로 끝날 수 있습니다.android - 해제하기 전에 ProgressDialog에서 null을 확인해야합니까?

질문은 대화 상자를 닫기 전에 AsyncTask와 AsyncTask 모두에서 null 값을 확인해야합니까?

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

또는 단지 : ProgressDialog.dismiss()가 나를 위해이를 처리 또는 내가 해고하기 전에 null 값을 확인하지 않는 경우는 NullPointerException이 발생합니다 경우 나도 몰라

progressDialog.dismiss(); 

.

+0

ProgressDialog 자체를 null로 설정할 수 없습니다. 그래서 어딘가에서 할 수 있습니다. –

+0

@Tim, 나는 .dismiss()가 인스턴스를 파괴 할 것이라고 생각했습니다. 어쩌면 내가 틀렸어. 그래서 당신이 말한 것과 같습니다. 해지 된 경우에도 .dismiss()를 여러 번 호출해도 NullPointerException 같은 문제가 발생하거나 응용 프로그램이 중단되어서는 안됩니까? – Boy

+0

아니요, dismiss()를 여러 번 호출하면 충돌이 발생하거나 NPE를 throw해서는 안됩니다. –

답변

0

java는 null을 확인하는 것이 좋습니다. progressDialog.isShowing() 그렇지 않으면 누출 창이 예외가 발생할 수 있습니다 언젠가.

0

내부적으로 처리되므로 isShowing()을 확인할 필요가 없습니다. 명시 적으로 처리 할 필요가 없습니다.

관련 문제