참고: http://stackoverflow.com/questions/2257963/android-how-to-show-dialog-to-confirm-user-wishes-to-exit-activity
onBackPressed() 함수를 override 하고 super 클래스의 onBackPressed() 함수는 부르지 않으면 back 키를 눌러도 finish 처리하지 않게 할 수 있습니다.
예)
@Override
public void onBackPressed() {
// super.onBackPressed();
openDialog(DLG_ID_CLOSE_CONFIRM);
}
super 클래스의 함수를 부르는 대신 다이얼로그를 띄우게 하였습니다.
해당 다이얼로그에서 ok 버튼을 누르면 앱을 종료하게 하였습니다.
대신, onKeyDown() 함수를 이용하는 방법도 있습니다.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
openDialog(DLG_ID_CLOSE_CONFIRM);
return false;
}
return super.onKeyDown(keyCode, event);
}
onKeyDown() 함수에서 false 를 리턴하면 기본 키 동작을 처리하지 않습니다.
Home 버튼 등은 적용되지 않는 것으로 알고 있습니다.
댓글 없음:
댓글 쓰기