
안드로이드에서 대화상자를 띄울때 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
우주선 - 방치형 인공지능 투자 체험기
미리 맛보는 인공지능 투자!
(주)머리말 meorimal.com
https://meorimal.com/subway.html
지하철어디있니
더이상 고민하지 마세요. 뛸지 말지 딱 보면 알죠.
(주)머리말 meorimal.com
'개발 > 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 |