第一个案例
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
第二种情况
OnBackPressed();
哪种情况最好覆盖backKeypress事件?
答案 0 :(得分:4)
如果您想要在2.0之前进行背压,可以使用onKeyDown
方法,如下所示:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
//Do something on back press
}
return super.onKeyDown(keyCode, event);
}
有趣的是,如果你同时覆盖onBackPressed和onKeyDown,两者都会抓住后退,onKeyDown
首先抓住它。
如果您像我们一样在super.onKeyDown
中致电onKeyDown
,那么onBackPressed
方法将会触发。如果您不致电super.onKeyDown
,则永远不会调用onBackPressed
。
除非您有特定理由将目标定在2.0以下,否则没有太多理由要打扰。
答案 1 :(得分:2)
我认为你应该使用:
@Override
public void onBackPressed() {
//...
}
以防您只想覆盖一个事件。如果要检测该用户是否物理地单击了后退键,则第一种方法会更好。
答案 2 :(得分:1)
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
如果你正在谈论覆盖这个事件,那么第一个是正确的事情。
答案 3 :(得分:0)
您应该使用:
@Override
public void onBackPressed() {
}