Android Back按钮代码从未执行过

时间:2012-12-01 16:30:29

标签: android

我的活动中有以下代码。我将断点设置为所有这些方法。当我按下Menu按钮时,它会进入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。

3 个答案:

答案 0 :(得分: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等。

答案 1 :(得分:0)

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

只使用其中任何一个,而不是两个

答案 2 :(得分:-1)

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