본문 바로가기
안드로이드 스튜디오 앱 개발/실제 앱 개발 과정

안드로이드 스튜디오 뒤로가기 버튼 막기 및 2번 클릭시 종료하기 onBackPressed() [Android Studio]

by 망댕이 2023. 6. 23.
반응형

안드로이드 스튜디오에서 onBackPressed()는 뒤로가기 버튼을 눌렀을 때

실행시킬 코드를 담는 함수입니다.

@Override
public void onBackPressed(){
	//뒤로가기 버튼을 눌렀을 때 실행 시킬 코드
}

1. 뒤로가기 버튼 막기

뒤로가기 버튼을 눌렀을 때 아무일도 발생하지 않도록 하는 코드는

onBackPressed(){}안에 아무것도 입력하지 않는 것입니다.

 

그러면 뒤로가기 버튼을 눌러 onBackPressed()가 호출되어도

실행할 코드가 존재하지 않기 때문입니다.

 

@Override
public void onBackPressed() {

}

2. 2번 클릭시 종료하기

어플리케이션을 종료하기 위해 뒤로가기 버튼을 누르면 toast메세지로

"다시 한 번 누르시면 앱이 종료됩니다."라는 문구를 굉장히 많이 보셨을 것 입니다.

이렇게 만듦으로써 사람들이 의도치 않은 어플리케이션의 종료를 방지하고

다시 한 번 어플리케이션을 이용할 수 있는 기회를 제공할 수 있습니다.

    private long Time = 0; //마지막에 뒤로가기 버튼 누른 시간
    private Toast toastMessage;


                                         ---생략---


    @Override
    public void onBackPressed() {

        if (System.currentTimeMillis() > Time + 2500) {  // 현재 시간이 Time + 2500보다 무조건 크기 때문에 실행됨
            Time = System.currentTimeMillis();  // Time = 현재시간 으로 변경
            toastMessage = Toast.makeText(this, "종료하시려면 한 번 더 누르세요!", Toast.LENGTH_LONG);
            toastMessage.show();  // 토스트메세지 출력
            return;
         }
       
        if (System.currentTimeMillis() <= Time + 2500) {  // 2.5초 뒤에 다시 한 번 눌렀을 때 실행될 코드
            finish();  // 액티비티 종료
            toastMessage.cancel();
        }
    }

 

이렇게 currentTimeMillis()를 이용하여 뒤로가기 버튼을 한 번 눌렀을 때

"종료하시려면 한 번 더 누르세요."라는 토스트 메세지가 뜨게 하고

토스트 메세지가 뜬 지 2.5초 이내에 뒤로가기 버튼을 한 번 더 눌렀을 때

액티비티가 정상적으로 종료될 수 있도록 만들 수 있습니다.

반응형