도대체뭐가문제임

onBackPressed()에서 백버튼 더블클릭으로 앱 종료하기 본문

안드로이드

onBackPressed()에서 백버튼 더블클릭으로 앱 종료하기

뭐가문제임 2021. 4. 29. 14:09

핸들러를 이용한 방법

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