뒤로가기 버튼 막기

앱을 개발하다 보면 뒤로가기 버튼의 동작을 따로 구현해야 할 때가 있다. Activity의 현재 상태를 DB 등에 저장하고 이전 화면으로 돌아간다던가 아예 뒤로 가기 버튼을 막아두어 뒤로 되돌아가지 못하게 할 수도 있다.

뒤로 가기 버튼은 onBackPressed() 메소드에 의해 구현되어 있다. 따라서 뒤로가기 버튼 클릭시 기본 동작 방식과 다르게 구현하고 싶다면, onBackPressed() 메소드를 오버라이드하면 된다.

뒤로가기 버튼이 작동하지 않도록 하려면, 다음과 같이 onBackPressed() 메소드를 오버라이드 한 후, 내용을 비워두면 된다.

@Override
public void onBackPressed() {
	//super.onBackPressed();
}

뒤로가기 버튼 클릭시 다른 동작을 하도록 구현하려면, onBackPressed() 메소드 내에 필요한 기능을 구현해 두면 되겠다.


이렇게 뒤로가기 버튼을 막아 두었다고해서 앱을 종료하는 것을 막을수는 없다. 앱 실행 중에 홈 버튼을 눌러 다른 앱으로 전환하는 것도 앱을 강제로 종료하는 것도 가능하다. 안드로이드는 홈 버튼을 누르는 이벤트에 대해서만큼은 오버라이드할 수 없도록 막아두었기 때문에 해커들이 악의적으로 자신의 앱을 종료하지 못하도록 하는 행위는 원칙적으로는 불가능하다.