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() 에서 이벤트를 가져가고 있기 때문이다.
반응형
'Dev > Android' 카테고리의 다른 글
Android Flash(light) 기능 사용 (0) | 2018.07.30 |
---|---|
특정 Context 가 특정 Activity 의 Context 인지 확인하는 방법 (0) | 2018.07.03 |
DialogFragment 사라질때 - dismiss listener (0) | 2018.06.21 |
Fabric 오류 in Jenkins - Failed to apply plugin [id 'io.fabric'] (0) | 2018.06.18 |
[Warning] 코드로 TextView 스타일 변경하기 (Normal, Bold, Italic...) - 예외상황 (0) | 2018.06.08 |