앱개발
[안드로이드 스튜디오][코틀린] 뒤로가기 두번해야 종료 구현하기 [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보다 작은값을 갖게되죠. 그리고 종료됩니다.
반응형