Today I Learn

[TIL] IllegalArgumentException: View=DecorView not attached to window manager

SeungYong.Lee 2023. 12. 29. 10:29
반응형

Crashlytics 살피던 중, 아래와 같은 Error Report를 발견했다.

Fatal Exception: java.lang.IllegalArgumentException: View=DecorView@b5f5db7[TestActivity] not attached to window manager at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:657) at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:564) at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:208) at android.app.Dialog.dismissDialog(Dialog.java:801) at android.app.Dialog.dismiss(Dialog.java:783)

 

Activity가 유효하지 않은 상태에서 해당 Activity 기반으로 다이얼로그를 dismiss() 할 때, 발생할 수 있다.

따라서 다이얼로그를 dismiss() 시에 현재 상태에 대한 파악이 필요하다.

 

1. 팝업된 다이얼로그의 기반이 되는 Activity가 유효한 상태인가?
2. 대상 다이얼로그가 유효한 상태인가?

 

private fun hideDialog() {
    if (isFinishing || !isDialogShowing()) return
    testDialog?.dismiss()
    testDialog = null
}

private fun isDialogShowing() : Boolean {
    val dialog = this.testDialog ?: return false
    return dialog.isShowing
}

 

반응형