본문 바로가기
안드로이드

[안드로이드/JAVA] 안드로이드 뒤로가기 2번 입력

by krapoi 2022. 3. 6.
반응형

이번에 만들어 볼 것은 뒤로 가기를 두 번 입력해 앱을 종료하는 것이다.

 

먼저 모듈 하나를 만들어 주자.

public class BackKey {
    private long BackKeyPressedTime = 0;
    private Toast toast;
    private final Activity activity;

    public BackKey(Activity activity) {
        this.activity = activity;
    }

    public void showMessage(){
        toast = Toast.makeText(activity,"\"뒤로가기\" 버튼을 한번 더 누르시면 종료 됩니다.",Toast.LENGTH_SHORT);
        toast.show();
    }

    public void onBackPressed(){
        if(System.currentTimeMillis() <= BackKeyPressedTime + 2000){
            activity.finish();
            toast.cancel();
        }

        if(System.currentTimeMillis() >= BackKeyPressedTime + 2000){
            showMessage();
            BackKeyPressedTime = System.currentTimeMillis();
        }
    }



}

이렇게 모듈을 만들어 주었다.

먼저 생성자를 하나 만들어 activity를 받아준다.

그 이유는 activity를 받아야 그 activity를 종료하기 때문이다.

 

showMessage는 Toast를 생성하여 알려주는 메소드이다.

 

그다음 onBackPressed가 뒤로 가기 2번 검사인데

 

먼저 currentTimeMillis를 System에서 가져온 다음 처음에 long으로 선언해둔 BackKeyPressedTime에 2000을 더해 비교한다.

 

Millis이기 때문에 2000은 2초를 의미한다.

비교해서 BackKeyPressedTime이 크거나 같다면 그 Activity를 종료하고 토스트를 캔슬시킨다.

 

그다음 만약 작거나 같다면 메시지를 띄워주고 BackKeyPressedTime을 currentTImeMillis로 바꿔준다.

 

만약 if문 순서가 바뀐다면, BackKeyPressedTime을 currentTimeMillis로 바꾸는 if에 마지막에 return을 넣어주면 된다.

 

그다음 사용법을 알아보자.

 

먼저 사용할 Activity에 들어간 다음,

모듈을 인스턴스 해 준다.

그다음

onBackPressed라는 함수를 Override 해준다.

그리고 인스턴스 한 모듈에서 onBackPressed를 실행시키면 끝.

내가 사용한 Acrivity중 하나

 

요즘 자주 보이는 기능이기 때문에 알아두면 좋을 것 같다.

반응형