개발 창고/Android

[Android] 뒤로가기 종료 막기

로이제로 2020. 9. 1. 13:40
반응형

안드로이드 개발을 하다보면 보통 뒤로가기를 잘못눌러 어플이 종료되곤합니다. 때문에 두번 이상 누른 경우에 어플이 종료되길 바라는 경우가 많은데 이 경우 다음과 같이 MainActivity에 적용해주면 좋습니다.

 

public class MainActivity extends ActivityCompact {

    ...
    
    //webView 뒤로 가기 처리
    private long time = 0;
    private Toast toast;

    ...

    @Override
    public void onBackPressed() {
        if(System.currentTimeMillis()-time >= 2000){
            // CASE 이전에 뒤로가기 키를 누른 시간이 2초 이상인 경우 (뒤로가기를 두번 누르지 않은걸로 판단)
            
            // Step01. 현재 누른 시간을 time에 담아줍니다. (뒤로가기를 두번 누른 간격 체크를 위해)
            time = System.currentTimeMillis();
            
            // Step02. 한 번 더 눌러야 종료가 됨을 Toast로 알려줍니다.
            toast = Toast.makeText(getApplicationContext(),"뒤로 버튼을 한번 더 누르면 종료합니다.",Toast.LENGTH_SHORT);
            toast.show();
        }else{
            // CASE 뒤로가기 키를 2초 이내에 두번 누른 경우
            
            // Step01. 이전에 Toast메시지를 지워줍니다(지우지 않으면 어플이 종료되도 일정시간 이후에 사라지기 때문)
            toast.cancel();
            
            // Step02. 어플을 종료해줍니다.
            finish();
        }
    }
반응형