Android Studio/java

36. [안드로이드/java] 뒤로가기 두번 클릭시 종료하기(Toast)

drizzle0925 2021. 10. 28. 16:33
728x90

네이버 앱이나 다른 앱에서 많이 사용하고 있는 기법입니다.

1. 뒤로 가기 버튼 클릭

    1) 이전 페이지가 있음 : 뒤로 돌아감

    2) 이전 페이지가 없음 : Toast창을 띄움 > 뒤로 가기 버튼 클릭 > 앱 종료


예제

MainActivity에 아래 코드를 입력합니다.

private long backKeyPressedTime = 0;
...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);    
}

@Override
public void onBackPressed() {
    //super.onBackPressed();
    if(mWebView.canGoBack()) {
       mWebView.goBack();
    }else{
        if(System.currentTimeMillis()-backKeyPressedTime>=2000){
            backKeyPressedTime=System.currentTimeMillis();
            Toast.makeText(getApplicationContext(),"'뒤로'버튼 한번 더 누르시면 종료됩니다.",Toast.LENGTH_SHORT).show();
        }else if(System.currentTimeMillis()-backKeyPressedTime<2000){
            finish();
            return;
        }
    }
}

결과물


이전 페이지로 이동하지 않고 뒤로 가기 버튼을 2번 클릭하면 앱 종료

private long backpressedTime = 0;

@Override
    public void onBackPressed() {
        if (System.currentTimeMillis() > backpressedTime + 2000) {
            backpressedTime = System.currentTimeMillis();
            Toast.makeText(this, "'뒤로'버튼 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show();
        } else if (System.currentTimeMillis() <= backpressedTime + 2000) {
            finish();
        }
    }
728x90