[Android/Kotlin] 안드로이드 뒤로가기 종료 방지하기 feat. onBackPressed()
뒤로가기 버튼을 눌렀을때 백스택이 없으면 앱이 종료됩니다.
하지만 사용자의 실수로 앱이 종료될 수 있기 때문에 일정 텀을 주는 것이 좋습니다.
그래서 "종료하시려면 뒤로가기 버튼을 한번 더 눌러주세요." 라는 토스트 메시지를 띄워주는 앱이 많습니다.
이러한 토스트 메시지를 띄워주는 방법에 대해서 알아보겠습니다.
Step01. 변수선언
private var doubleBackToExit = false
Step02. onBackPressed()
override fun onBackPressed() {
if (doubleBackToExit) {
finishAffinity()
} else {
Toast.makeText(this, "종료하시려면 뒤로가기를 한번 더 눌러주세요.", Toast.LENGTH_SHORT).show()
doubleBackToExit = true
runDelayed(1500L) {
doubleBackToExit = false
}
}
}
fun runDelayed(millis: Long, function: () -> Unit) {
Handler(Looper.getMainLooper()).postDelayed(function, millis)
}
oBackPressed() 메소드가 최초 호출될 때 doubleBackToExit을 true으로 변경해줍니다.
1.5초이내 재 클릭시에는 true로 인해 액티비티가 종료되지만, 1.5초 이후에는 Handler에 의해 다시 false로 변경되어 다시 토스트 메시지가 나타납니다.
'기리's Android 이야기' 카테고리의 다른 글
[Android Studio/Kotlin] 안드로이드 Live Template 사용하기 (2) | 2021.01.26 |
---|---|
[Android/Kotlin] 안드로이드 ArrayAdapter를 활용한 Spinner 구현 (1) | 2021.01.25 |
[Android/Kotlin] 안드로이드 Single Click 구현하기 feat. 두번 클릭 방지... (2) | 2021.01.22 |
[Android/Error] 안드로이드 Caused by: java.lang.NullPointerException: Missing required view with ID: ~~~~~ (3) | 2021.01.21 |
[Android/Kotlin] 안드로이드 SharedPreferences 사용하기 (3) | 2021.01.20 |
댓글