안드로이드 앱을 사용중에 휴대폰의 뒤로가기 버튼을 클릭하게 되면 앱이 종료됩니다.


이전 화면으로 돌아가고자 뒤로가기 버튼을 누르거나, 실수로 뒤로가기 버튼을 스쳤는데 앱이 바로 꺼져버린다면 사용자에게 불편함을 유발할 수 있겠죠

그래서 최근 개발되는 앱들은 뒤로가기 버튼을 한번 클릭 시, Toast 메시지를 통해 종료의사를 물어보고, 개발자가 지정한 시간 이내 뒤로가기 버튼을 추가로 클릭한 경우 앱을 종료시키는 방법을 사용합니다.


그럼 이제 구현방법을 알아볼까요? 구현방법은 아주 간단합니다.


뒤로가기 버튼을 눌렀을때 바로 종료시키지 않을 Activity.java 에 아래 방법으로 구현해주시면 됩니다.


1. 


// 뒤로가기 버튼을 눌렀던 시간 저장
private long backKeyPressedTime = 0;


2. onBackPressed() 함수


@Override
public void onBackPressed() {
// 기존의 뒤로가기 버튼의 기능 제거
// super.onBackPressed();

// 2000 milliseconds = 2 seconds
if (System.currentTimeMillis() > backKeyPressedTime + 2000) {
backKeyPressedTime = System.currentTimeMillis();
Toast.makeText(this, "\'뒤로\' 버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show();
return;
}

// 2초 이내에 뒤로가기 버튼을 한번 더 클릭시 finish()(앱 종료)
if (System.currentTimeMillis() <= backKeyPressedTime + 2000) {
finish();
}
}


이렇게 두가지만 설정해주시면 문제없이 뒤로가기 두 번 클릭하여 앱종료가 되는것을 확인하실 수 있습니다.


앱을 개발하다보면 여러 앱에 반복적으로, 또 필수적으로 들어가는 공통 함수나 코드들이 있습니다. 예를들어 뒤로가기 두번클릭 앱종료, 애드몹 설정, 가로화면 세로화면 고정, 타이틀바 삭제, 앱 아이콘과 이름변경 등등


이런것들을 최초 한번 코딩하신 후, 문제없이 구현되었다면 개인적으로 정리해두시는 것이 앞으로의 코딩속도에 큰 도움이 될것이라고 생각합니다.