0

我的活动中有以下代码。我为所有这些方法设置了断点。当我按下菜单按钮时,它会输入 onKeyDown 和 onKeyUp。当我按下后退按钮时,应用程序关闭,手机返回主屏幕,没有通过我的任何断点。

编辑:这应该可以根据大多数来源工作:

@Override
public void onBackPressed() {
    SwitchToMenuState();
}

然而,事实并非如此。我已经尝试了以下代码块的所有排列,但它们都没有被调用:

@Override
public void finish()
{
    SwitchToMenuState();
}   

public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        SwitchToMenuState();
    }
    return true;
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        SwitchToMenuState();
    }
    return true;
}   

我正在使用 Android 2.3 和 Processing,尽管它似乎与 Processing 无关。Eclipse 告诉我我正在覆盖 android.app.Activity.onBackPressed。

4

3 回答 3

1

您只需要 onKeyDown

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

        //Your code here

            return true;
    }
    return super.onKeyDown(keyCode, event);
}

我认为这是因为您没有返回超级部分。这对我有用,你不需要 onbackpressed 或 onkeyup 等。

于 2012-12-01T20:31:09.597 回答
0

在 android 1.x 中使用 onKeyDown 在 android 2.x 中使用 onBackPressed

并且只使用其中一个,而不是两者

于 2012-12-01T17:10:59.847 回答
-1

当您按下返回时,如果在此活动之前没有活动,您的应用程序将关闭。您可以开始使用: startActivity(intent);

于 2012-12-01T16:46:21.623 回答