본문 바로가기
🐛 버그

WindowManager$BadTokenException

by 콩드로이드 2020. 12. 15.

Fatal Exception : android.view.WindowManager$BadTokenException
Unable to add window — token android.view.VoewRootImpl@ is not valid; is your activity running?

 

이 에러가 지속해서 발생했는데 Firebase Crashlytics 에서

 

🔔 창 추가 불가 - 토큰이 올바르지 않음, 활동 실행 여부 확인 필요
이 비정상 종료는 대개 앱에서 이전에 완료된 활동을 컨텍스트로 사용하여 대화상자를 표시하려고 시도하여 발생합니다. 예를 들어 활동이 종료되면 대화상자를 표시하려고 시도하는 AsyncTask를 트리거하지만 사용자가 작업이 완료되기 전에 활동에서 뒤로 이동하면 발생할 수 있습니다.

 

비정상 종료 통계에 위와 같은 메시지가 뜹니다 

 

이를 해결하기 위해서 is your activity running?를 체크해주면 됩니다 

 

즉, 에러가 발생한 부분에 조건문으로 activity가 isFinishing인지 아닌지를 체크해주면 됩니다 

 

Solution) 

 

Fragment의 경우는 (context as Activity).isFinishing

 

if(!(context as Activity).isFinishing){
    // 에러 부분
}

 

Activity의 경우 isFinishing을 사용하면 됩니다  

 

if(!isFinishing){
    // 에러 부분
}

 

 

궁금하신 점이나 의견이 있으시면 댓글 부탁드립니다 감사합니다 😊