728x90
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
}
728x90