반응형
안드로이드에서 기존에 뒤로가기 버튼 눌렀을 때 동작을 커스텀 할 때 onBackPressed() 메소드를 오버라이딩했씁니다.
Jetpack Compose 에서는 어떻게 구현해야 할까요?
BackHandler 라는 녀석을 사용하면 되는데요.
예제 코드를 보겠습니다.
뒤로 가기 버튼을 빠르게 두 번 눌렀을 때 앱을 종료하는 코드입니다.
// 뒤로 가기 두 번 눌렀을 때 앱 종료
@Composable
fun BackOnPressed() {
val context = LocalContext.current
var backPressedState by remember { mutableStateOf(true) }
var backPressedTime = 0L
BackHandler(enabled = backPressedState) {
if(System.currentTimeMillis() - backPressedTime <= 400L) {
// 앱 종료
(context as Activity).finish()
} else {
backPressedState = true
Toast.makeText(context, "한 번 더 누르시면 앱이 종료됩니다.", Toast.LENGTH_SHORT).show()
}
backPressedTime = System.currentTimeMillis()
}
}
실제 사용 시는 아래와 같이 사용하시면 됩니다.
BackOnPressed()
Scaffold() {
...
}
반응형
'안드로이드' 카테고리의 다른 글
[안드로이드/Android] 폰인지, 태블릿인지 구분하기 (0) | 2023.04.05 |
---|---|
[안드로이드/Android] onBackPressed Deprecated (0) | 2023.03.28 |
[안드로이드/Android] Compose BottomNavBar (0) | 2023.03.14 |
[안드로이드/Android] Compose TextField maxLength 설정하기 (0) | 2023.03.14 |
[안드로이드/Android] Migration SharedPreferences to EncryptedSharedPreferences (0) | 2023.03.14 |