[코틀린 컴포즈] 뒤로가기 버튼 제어 (두번 누르면 앱 종료하기)

2024. 3. 22. 12:01·코틀린/컴포즈
반응형

우린 앱을 쓰다보면, 앱을 종료하고 싶을 때가 있다.
그럴 때 뒤로가기를 누르면 "한번 더 누르면 앱이 종료됩니다."라고 뜨면서 한번에 종료가 안되고,
뒤로가기 버튼을 한번 더 눌러야만 앱이 종료가 되는 앱을 많이 봤을 것이다.

오늘은 그 기능을 한번 만들어 보겠다.

뒤로가기 기능 제어

@Composable
fun BackOnPressed() {
    val context = LocalContext.current
    var backPressedTime = 0L // 뒤로가기 버튼을 눌렀던 시간을 저장하는 변수

    BackHandler(enabled = true) {
				// 만약 전에 뒤로가기 버튼 누른 시간과 특정한 시간 만큼 차이가 나지 않으면 앱종료.
        if(System.currentTimeMillis() - backPressedTime <= 400L) {
            (context as Activity).finish() // 앱 종료
        } else {
				// 특정한 시간 이상으로 차이가 난다면 토스트로 한 번 더 버튼을 누르라고 알림
            Toast.makeText(context, "한 번 더 누르면 앱이 종료됩니다.", Toast.LENGTH_SHORT).show()
        }
				// 뒤로가기 버튼을 눌렀던 시간을 저장
        backPressedTime = System.currentTimeMillis()
    }
}

 

사용 방법

@Composable
fun MySilverTownPage() {
    BackOnPressed() //해당 페이지 뒤로가기 버튼 제어
    Box(
        modifier = Modifier.fillMaxSize(),
        contentAlignment = Alignment.Center
    ) {
        Text(text = "MySilverTownPage")
    }
}

원하는 페이지에 이렇게 작성하면 잘 작동된다.

반응형
저작자표시 비영리 변경금지 (새창열림)
'코틀린/컴포즈' 카테고리의 다른 글
  • [코틀린 컴포즈] 뒤로가기 버튼이 있는 앱바 만들기
  • [코틀린 컴포즈] Lottie 활용하기
  • [코틀린 컴포즈] BottomNavigationBar 구현
서진형(Harvie)
서진형(Harvie)
🚀 1인 개발과 1인 창업의 모든 것! 실전 경험을 바탕으로 기술, 비즈니스, 그리고 성장의 과정까지 담아내는 블로그. 배운 것, 부딪힌 것, 그리고 그 속에서 얻은 인사이트를 공유합니다.
  • 서진형(Harvie)
    Harvie의 개발로 창업하기
    서진형(Harvie)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 하비의 이야기
      • 플러터
        • 플러터 개발
        • 플러터 개념
        • 플러터 기초
      • 코틀린
        • 컴포즈
      • 파이썬
        • 파이썬 심화
        • 파이썬 기초
      • 컴퓨터공학
        • 소프트웨어
        • 클라우드 서비스
      • 정보 공유
        • 행사 소개
        • 꿀팁 공유
      • 문제 해결
      • 깃허브
      • 개발한 서비스
  • 블로그 메뉴

    • Harive's Portfolio
    • 에어컨 서비스 예약하기
  • 링크

    • Instagram
    • 코너(CONER) 블로그
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
서진형(Harvie)
[코틀린 컴포즈] 뒤로가기 버튼 제어 (두번 누르면 앱 종료하기)
상단으로

티스토리툴바