Android onKeyDown()和onBackPressed()之间的差异

Android onKeyDown()和onBackPressed()之间的差异,android,onkeydown,onbackpressed,Android,Onkeydown,Onbackpressed,我对onKeyDown()和onBackPressed()的用法感到困惑。 这两种重写方法在功能和用法上是否相同? 如果不是这样,那么两者的正确用法是什么 您可能指的是这个问题,它询问实现的位置,但我要问的是为什么以及何时而不是何地。onKeyDown()可用于您的Android设备上的任何硬件键,可以是电源按钮、后退按钮或音量按钮 onBackPressed()仅在按下后退按钮时调用 区别如下: @Override public boolean onKeyDown(int keyCode, K

我对
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
s完整列表:


正如您所看到的,如果您想检测背压,则实现
onBackPressed()
更容易。

@Hexfire SIR!!。。您已经将其标记为重复,这里的问题是,它询问了实现的位置,但我问的是为什么和什么时候where@xamMTS我收回了国旗。