Dev/Android

onKeyDown() 함수와 onBackPressed() 함수

healthyryu 2018. 6. 27. 11:54


onKeyDown() VS onBackPressed()


어플리케이션에서 backButton 을 누를때 특정 동작을 구현하려고 하였다.


backButton (뒤로가기)을 눌렀는데 onBackPressed() 의 함수를 호출하지를 못했다.

@Override
public void onBackPressed() {
// 로그....
}


코드를 살펴보니 onKeyDown() 함수를 통해서 Key Event 를 받고 있었다.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:

// 코드...
return true;

case KeyEvent.KEYCODE_VOLUME_DOWN:
// 코드...
return true;

case KeyEvent.KEYCODE_BACK:
// 코드...
return true;

default:
return false;
}
}


이번 상황을 통해서 알게 된것은 onKeyDown() 으로 KeyEvent 를 받을때는 onBackPressed() 를 호출 할 수 없다는 것이다. 이미 onKeyDown() 에서 이벤트를 가져가고 있기 때문이다.



반응형