2010. 4. 22. 10:53

back key overriding





OnKeyDown() 함수를 overriding하면 됨

참고해야할 사항은 back key를 눌러서 platform에서 이전 activity로 돌아가는 처리를 하는 이벤트가

ACTION_DOWN이벤트라는 거다. (key down + back key가 들어오면 자동종료되고 이후에 key up등은 안들어옮)

그래서 굳이 UP에서도 처리할 필요없고 아래와 같이 처리를 하면 된다.

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
   // Do your job~~
  }
  return true;
 }

위의 경우에는 내가 모든 key를 무조건 다 먹어버리는데 back키만 오버라이드하고 나머지는 platform이 알아서

후처리를 하게 하고 싶다면 아래와 같이 변경

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
   // Do your job~~
  } else {
  super.onKeyDown(keyCode, event);
 }