我的活动中有以下代码。我将断点设置为所有这些方法。当我按下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。
答案 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);