도대체뭐가문제임
onBackPressed()에서 백버튼 더블클릭으로 앱 종료하기 본문
핸들러를 이용한 방법
private var doubleBackToExitPressedOnce = false
override fun onBackPressed() {
if (doubleBackToExitPressedOnce) {
finishAffinity()
return
}
doubleBackToExitPressedOnce = true
Toast.makeText(this, "뒤로가기 버튼을 한 번 더 누르면 종료됩니다.", Toast.LENGTH_SHORT).show()
Handler().postDelayed({ doubleBackToExitPressedOnce = false }, 2000)
}
}
RxJava를 이용한 방법
private var doubleBackToExitPressedOnce = false
override fun onBackPressed() {
if (doubleBackToExitPressedOnce) {
finishAffinity()
return
}
doubleBackToExitPressedOnce = true
Toast.makeText(this, "뒤로가기 버튼을 한 번 더 누르면 종료됩니다.", Toast.LENGTH_SHORT).show()
Observable.timer(2000L, TimeUnit.MILLISECONDS).subscribe { doubleBackToExitPressedOnce = false }
}
}
Coroutine을 이용한 방법
private var doubleBackToExitPressedOnce = false
override fun onBackPressed() {
if (doubleBackToExitPressedOnce) {
finishAffinity()
return
}
doubleBackToExitPressedOnce = true
Toast.makeText(this, "뒤로가기 버튼을 한 번 더 누르면 종료됩니다.", Toast.LENGTH_SHORT).show()
CoroutineScope(Dispatchers.Main).launch {
delay(2000).run {
doubleBackToExitPressedOnce = false
}
}
}
}
'안드로이드' 카테고리의 다른 글
[Android]Deeplink란? (0) | 2021.08.19 |
---|---|
안드로이드의 구조 (0) | 2021.05.03 |
액티비티를 종료하는 여러 함수들 (0) | 2021.04.28 |
Comments