我对
您可能会参考这个问题here,它询问了实现的位置,但我想问的是为什么和何时而不是在哪里。
onKeyDown()
和onBackPressed()
的使用感到困惑。这两种重写方法在功能和用法上是否相同?如果不是,那么两者的正确用法是什么?您可能会参考这个问题here,它询问了实现的位置,但我想问的是为什么和何时而不是在哪里。
onKeyDown()
和onBackPressed()
的使用感到困惑。这两种重写方法在功能和用法上是否相同?如果不是,那么两者的正确用法是什么?onKeyDown()
可以用于您的 Android
设备上的任何硬件键,例如电源按钮、返回按钮或音量按钮。
onBackPressed()
仅在按下返回按钮时调用。
以下是它们的区别:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// back was pressed
return true;
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
// volume up was pressed
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
// back was pressed
}
在这里可以查看完整的 KeyCode
列表:
https://developer.android.com/reference/android/view/KeyEvent.html
正如您所看到的,如果您想检测后退按钮的按下,则实现 onBackPressed()
更容易。