본문 바로가기
안드로이드

뒤로가기 종료

by 기록을안하면바보 2024. 11. 15.

보통 앱은 뒤로가기 눌러도 종료가 되지 않음

but 현재 만든 앱 다 뒤로가기 누르면 종료된다..

 

더블클릭해야 종료되도록 설정해주겟다!


뒤로가기로 종료를 막는 방법

activity에서 onBackPressd 함수 내 super.onBackPressed 부분을 주석처리해준다.

 

... 그런데 티라미수 버젼부터는 onbackPressed 함수를 쓸 수 없어 OnBackPressedDispatcher를 사용해야한다.

 

기본 사용 방법은 동일하지만 onBackPressedDispatcher에  callBack을 추가해주어야한다. 

 


더블클릭으로 종료하는 방법

뒤로가기 누른 시간을 기억하고 지정 간격 내 한번 더 뒤로가기 클릭시 종료되도록 한다.


Back gesture

백 제스쳐. 스와이프시 화면이 작아지는 애니메이션으로 앱이 종료되고 있음을 사용자에게 명시.

 

 

 

onCreate 함수는 실행시 제일 먼저 호출되는 함수임. (약간 init?)

초기화 할 것들 여기서 해주면 된다.

 

현재 시간 밀리초단위로 받는 방법은 System.surrentTimeMillis()

 

(현재시간 - 최근 뒤로가기 누른시간<=지정 간격) 이라면 프로그램을 종료하고

else 라면 최근 뒤로가기 누른 시간을 현재시간으로 update 해준다.

 

이때 다른 앱처럼 toast메세지도 띄워보겠다~!!

 

매인 엑티비티 oncreate에서 onBackPressedDispatcher에 콜백을 추가해준다.

 

 

뭐야!!! 안드로이드 스튜디오 실행시키다가 갑자기 강제종료되더니 내가 쓴거 날아감

뭐지... 저장을 잘 해주자...

나는 실행 한번 하면 다 저장되는 줄 알았다.....

 

.

 var backPressedTime=0L
    val onBackPressedCallback= object : OnBackPressedCallback(true){
        override fun handleOnBackPressed() {
            if(System.currentTimeMillis()-backPressedTime<2000){
                finish()
            }
            else{
                backPressedTime=System.currentTimeMillis()
                Toast.makeText(this@MainActivity,"더블클릭시 종료",Toast.LENGTH_SHORT).show()
            }
        }
    }

이렇게 해주면 더블 클릭했을 때만 앱이 종료되고 한번 클릭하면 토스트 메세지가 뜨는 것을 확인 할 수 있다  

'안드로이드' 카테고리의 다른 글

?!  (0) 2024.11.15
ListView  (9) 2024.11.15
안드로이드 주사위 만들기  (0) 2024.09.20
안드로이드 3강  (1) 2024.09.17
안드로이드 2주차  (0) 2024.09.16