반응형
안드로이드에서는 뒤로가기 버튼을 이용해서 앱을 종료할 수 있습니다. 하지만 이는 사용자 입장에서 앱이
예상치 못하게 쉽게 종료될 위험이 있으므로, 해당 문제를 방지하기 위해 특정 시간 내에 두번 뒤로가기
눌렀을 경우에만 앱이 종료되도록 할 수 있습니다.
<예시 코드>
private var backPressTime: Long = 0
override fun onBackPressed() {
if(System.currentTimeMillis() > backPressTime + 2000) {
Toast.makeText(this, "'뒤로' 버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show()
backPressTime = System.currentTimeMillis()
return
}
if(System.currentTimeMillis() <= backPressTime + 2000) {
super.onBackPressed()
}
}
}
뒤로가기 버튼이 눌렸을 경우 호출되는 onBackPressed() 함수를 수정해서 사용하면 구현이 가능합니다.
해당 로직의 주요점은 backPressTime이라는 Long형 변수를 이용해서 현재 시간을 나타내는
System.currentTimeMillis() 와의 비교를 통해 종료 여부를 결정하는 것입니다.
최초에 backPressTime을 0으로 초기화 합니다. 이에 따라 첫번째 if문에 무조건 걸리게 되어 현재시간의 값을 backPressTime에 저장합니다. 만약 사용자가 2초 내에 한번 더 뒤로가기를 눌렀다면,
두번째 if문에 걸리게되어 앱이 정상적으로 종료됩니다.
하지만 2초가 경과한 뒤에 눌렀다면 첫번째 if문에 걸리게되어 다시 처음부터 로직이 돌게됩니다.
반응형
'Android' 카테고리의 다른 글
[안드로이드 / Kotlin] 코드로 문자열 밑줄 표현하기 (0) | 2021.09.04 |
---|---|
[안드로이드 / Kotlin] windowLightStatusBar (0) | 2021.09.01 |
[안드로이드 / Kotlin] Array와 ArrayList 변환 (0) | 2021.08.31 |
[안드로이드 / Kotlin] 라디오버튼 Dialog (0) | 2021.08.31 |
[안드로이드 / Kotlin] DatePickerDialog (0) | 2021.08.29 |