마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

onBackPressed 함수 오버라이드 해도 종료될때?

0 추천

뒤로가기 버튼을 2번 누르면 종료되게끔 하려고 합니다.

그래서 onBackPressed() 함수를 overide 해서 toast 화면만 띄우게끔 코드를 짰습니다.

근데 toast도 뜨고 앱이 종료되됩니다....

왜? 한번만 눌러도 종료가 될까요....

참고로 한번만 누르고 종료될때 BBBBBBBBBBB 이건 출력이 안되는걸 봐서 if문 안쪽은

실행이 안되고 있는건 맞습니다.

코드는 아래와 같습니다. kotlin 으로 짜고있습니다.

 

override fun onBackPressed() {
    super.onBackPressed()
    println(System.currentTimeMillis().toString() + " " + lastTimeBackPressed)
    if ((System.currentTimeMillis() - lastTimeBackPressed) < 2000) {
        println("BBBBBBBBBBBBBBB")
        finishAffinity()
        System.runFinalization()
        System.exit(0)
        return
    } else {
        Toast.makeText(this, "'뒤로' 버튼을 한번 더 누르시면" + "\n" + "앱들 종료합니다.", Toast.LENGTH_SHORT).show()
        lastTimeBackPressed = System.currentTimeMillis()
        return
    }
}
익명사용자 님이 2019년 1월 2일 질문

1개의 답변

0 추천
super.onBackpressed()를 if안쪽으로 넣어보세요
익명사용자 님이 2019년 1월 2일 답변
...