황소개발자

[안드로이드 스튜디오][코틀린] 뒤로가기 두번해야 종료 구현하기 [kotlin] + system currentTimeMillis() 설명. @@황소처럼 우직하게@@ 본문

앱개발

[안드로이드 스튜디오][코틀린] 뒤로가기 두번해야 종료 구현하기 [kotlin] + system currentTimeMillis() 설명. @@황소처럼 우직하게@@

hjp845 2020. 2. 21. 23:29
반응형

우선 아래 사이트를 참조하였슴을 밝힙니다.

시작합니다

 

[Android : Kotlin] 뒤로가기 두번으로 앱 종료하기 with SnackBar

뒤로가기에 대한 처리를 해주지 않으면 기본으로 구성되어있는 onBackPressed() 메서드가 호출되며 열려있는 액티비티를 finish()시키게 되어있어서 뒤로가기 버튼을 한번만 누르면 앱이 종료되어 버린다. 뒤로가..

bongcando.tistory.com

    var time3: Long = 0
    override fun onBackPressed() {
        val time1 = System.currentTimeMillis()
        val time2 = time1 - time3
        if (time2 in 0..2000) {
            finish()
        }
        else {
            time3 = time1
            Toast.makeText(applicationContext, "한번 더 누르시면 종료됩니다.",Toast.LENGTH_SHORT).show()
        }
    }

코드는 위와 같습니다.

onBackPressed() 함수를 오버라이딩하여 구현합니다.

자 뒤로가기 한 번 누르면, time1 은 큰 값이고 time2 에 그대로 들어가겠죠.

(System.currentTimeMillis() 는 1970년 1월1일부터 ms 초 단위로 계산된 수를 반환합니다)

큰값이 들어오니 else 문이 실행되고

time3 에 그 큰값이 들어오고, 경고창을 띄워줍니다.

이 때, 뒤로가기를 2초안에 누른다면

time1 - time3 은 2000보다 작은값을 갖게되죠. 그리고 종료됩니다.

 

반응형
Comments