2012년 9월 12일 수요일

앱 종료시 back 키 처리

참고: 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 버튼 등은 적용되지 않는 것으로 알고 있습니다.

댓글 없음:

댓글 쓰기