java.lang.IllegalArgumentException: View not attached to window manager
View not attached to window manager 는 안드로이드에서 다이얼로그를 다루다 보면 가끔씩 발생하는 녀석인데요...
주로 다이얼로그를 생성한 Activity가 소멸되고 난 이후에 해당 다이얼로그를 dismiss()할때 발생합니다.
저도 이곳 저곳을 찾아보니 대부분 다음과 같은 방법을 알려주더군요.
1. dialog != null 일때 dialog.dismiss()를 사용한다.
2. dialog.cancel() 을 사용한다.
하지만 저는 위에서 말한 2가지 모두 정상동작 하지 않고 에러가 발생하더라구요.
사실 답은 쉬운곳에 있었습니다.
바로 왜 java.lang.IllegalArgumentException: View not attached to window manager 이러한 에러가 발생했는지 미리 말씀드렸죠?
"다이얼로그를 생성한 Activity가 소멸되고 난이후 해당 다이얼로그를 dismiss()할때"
바로 해당 Activity 가 onDestroy()가 호출되어 소멸될때 닫아 버리면 되는 것이 었습니다.
그리고 기존에 닫으시던 곳은 아래와 같이 예외처리 하시면 되구요.
if(dialog != null){
if(dialog.isShowing()){
dialog.dismiss();
}
}
}...
...
....
if(dialog != null){
if(dialog.isShowing()){
dialog.dismiss();
}
}
위와 같이 수정하시면 아마 에러가 발생하지 않으실 겁니다.
그럼 다들 즐프!!! 하세요.....
'프로그래밍 > 안드로이드' 카테고리의 다른 글
아이폰 스타일 안드로이드 토글버튼 (1) | 2013.04.26 |
---|---|
[안드로이드/Android] SharedPreferences (4) | 2013.03.27 |
[자바/Android] java.util.ConcurrentModificationException (6) | 2012.12.27 |
[안드로이드/Android] ImageView에서 ScaleType에 대해.. (0) | 2012.12.21 |
[안드로이드/Android] 안드로이드 키보드 옵션 (8) | 2012.11.01 |
[안드로이드/Android] Bitmap Drawable 변환 크기 (5) | 2012.10.31 |
SQLite Android Database Cursor window allocation of 2048 kb failed (0) | 2012.10.26 |
안드로이드 버튼으로 메뉴호출 하기 (2) | 2012.08.23 |
토스트 알림(Toast Notifications) (3) | 2012.08.23 |