ERROR/WindowManager(21862): Activity xxx.xxx.xxx.xxx.List has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@47fbf900 that was originally added here

ERROR/WindowManager(21862): android.view.WindowLeaked: Activity xxx.xxx.xxx.xxx.List has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@47fbf900 that was originally added here

일반 자바 프로그래밍에서도 마찬가지겠지만 컴파일 오류는 잡기 쉬운 반면, 런타임 오류는 좀처럼 잡기 어려운것 같습니다.. 안드로이드 프로그래밍하면서도 위와 같은 런타임 오류를 어렵지 않게 만날 수 있습니다. 안드로이드 디버거는 프로그래머가 당황하지 않게 대체로 힌트로 잘 설명되어 있습니다. 내용을 읽어보면 "어떤 Activity 상에서 여기에 원래 추가되었던 윈도우가 새고 있다" 뭐 대충 이런말입니다. 제 코드를 살펴보니 Dialog를 만들어 놓고 Activity가 finish 될 때 해당 Dialog 를 제대로 Dismiss를 해주지 않아서 생기는 문제 였습니다. 그래서 아래와 같이  

@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
if(isDebugMode) Log.i(TAG, "Release Dialog Resource");
if ( dialog != null)
dialog.dismiss();
}

했더니 문제가 생기지 않았습니다. onStop 상태에서 할지 onDestroy 상태에서 할지는 여러분의 프로그램 상태에따라 달라지지 싶습니다. 즐거운 안드로이드 코딩하세요~
Posted by 빈솔B
,