안드로이드에서 대화상자를 띄울때 DialogFragment를 사용한다.
그런데 사용후 닫았는데도 화면을 끄거나 홈버튼을 누르거나 다른 앱을 잠시 사용한후 들어오면...
닫혔던 DialogFragment 놈이 되살아나 다시 뜨는 경우가 있다.
알고보니 dismiss 리스너를 등록하면 그런다.
즉, setDismissListener에 리스너를 넣었다면 반드시 종료할때 dismiss()를 호출해주어야 한다.
그러지않고 back 버튼이나 바깥화면 터치로 닫으면 나중에 다시 떠버린다.
당황하지 말고 다음과 같이 하자...
dialog.setOnDismissListener {
//리스너 내용
}
dialog.setOnKeyListener { dialogInterface, i, keyEvent ->
if (keyEvent.action == KeyEvent.ACTION_UP && i == KeyEvent.KEYCODE_BACK)
dismiss()
false
}
dialog.setOnCancelListener {
dismiss()
}
도움이 되셨다면~ 정성으로 빚은 저희 앱! 많은 이용 바래요:)
https://meorimal.com/index.html?tab=spaceship
https://meorimal.com/subway.html
사업자 정보 표시
주식회사 머리말 | 고영진 | 서울특별시 송파구 중대로 135 서관 10층 (가락동, 아이티벤처타워) | 사업자 등록번호 : 524-88-00727 | TEL : 010-9990-3674 | Mail : gyjmeba@hanmail.net | 통신판매신고번호 : 2017-서울강남-03941호 | 사이버몰의 이용약관 바로가기
'개발 > android' 카테고리의 다른 글
FragmentPaper에서 ListView가 매번 초기화되지 않도록 하기 (0) | 2019.05.23 |
---|---|
객체 속도가 빠를수록 충돌검사가 부정확해진다면 (0) | 2019.04.02 |
EditText에 자동으로 단위 콤마 넣기 (0) | 2019.01.17 |
sqlite의 time이 자정을 인식 못할 경우, 간단한 꼼수 해결법 (0) | 2018.09.27 |
Intent 전달 방식을 모방하여 부모 activity를 호출하기 (0) | 2018.06.07 |