신용카드 정보 저장을 개발하고 있는데,
특정 화면에서 이를 로딩할 때 예외가 발생했습니다.
android.view.WindowManager$BadTokenException: Unable to add window
분석 결과,
카드 번호를 입력하는 EditText 뷰들의
TextChangedListener들이
카드 번호가 채워짐을 감지하고
동시에 팝업을 띄우려 한 것이 원인이었습니다.
전임자가 이 리스너를 만든 이유는
그 화면에서는 고객사의 정책에 따라
비회원이 결제를 할 수 없게 막았기 때문이었습니다.
사용자가 로그인 한 경우에 한해
신용카드 정보를 로딩하는 것으로
코드를 수정하였습니다.
팝업이 뜬 상태에서 또 팝업을 띄우려 하면,
BadTokenException이 발생한다.
이게 오늘 새로 배운 점입니다.