Android Error) Activity leaked window decorview that was originally added here

 

본론

본론부터 이야기 하자면, 해당 에러는 보통 Progress Dialog 쓸 때 나오는 에러이다.

 

우선 해당 에러가 나는 이유는 Dialog를 호출하고 끝내지 않아서 나는 오류 인데,

 

해결 방법은 간단하다.

 

액티비티가 finish() 될 때 그 이후에 dismiss 명령어를 줘서 에러가 나는 것.

 

(혹은 액티비티가 종료 될 때 까지 Progress Dialog를 비활성화 하지 않을 때에도 동일하다)

 

액티비티를 종료 하기 전에 dismiss 를 하거나,

 

복잡하고 헷갈려서 모르겠다 싶을 때는 해당 액티비티가 종료 될 때의 조건을 주면 편하다.

 

액티비티의 활동 주기에 대한 설명은 아래의 포스팅에서 자세히 확인 가능하다.

https://luvris2.tistory.com/257

 

안드로이드 액티비티 라이프 사이클 (수명 활동 주기)

활동 수명 주기 (Activity Life Cycle) 단계 간에 전환하기 위해 활동 클래스는 6가지 콜백으로 구성된 핵심 집합 활동이 새로운 상태에 들어가면 시스템은 각 콜백을 호출 종류 : onCreate(), onStart(), onRes

luvris2.tistory.com

 

해당 포스팅에서는 해결 방법만 적어두도록 하겠다.

// 해당 액티비티가 종료 될 때
@Override
protected void onDestroy() {
    super.onDestroy();
    // 액티비티 종료시 프로그레스 다이얼로그 제거
    if (progressDialog != null) {
        dismissProgressBar();
        progressDialog = null;
    }
}

 

 

서론

인터넷에서 찾아봐도 '액티비티가 종료 될 때...' 라는 이야기가 너무 많아서 무시 했었다.

 

왜냐면 나는 Dialog를 show 하는 부분에서 에러가 났기 때문.

 

결국 같은 말이다... 나 자신을 너무 과신하지 말자... ㅠ