我的应用程序当前卡在带有物理后退按钮的无限循环中。该程序设置为加载启动屏幕,然后转换到主菜单。一旦进入主菜单,用户就可以切换到他们选择的另一个活动。例如:新的游戏活动。一旦用户处于新的游戏活动中,我希望他们能够点击后退按钮并将其带到主菜单。一旦回到主菜单,如果他们再次点击后退按钮,我希望它退出游戏。
这是我用于每个活动的内容:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
startActivity(new Intent(NewGameActivity.this, MenuActivity.class));
}
return super.onKeyDown(keyCode, event);
}
它可以正常工作,并且可以毫无问题地将用户带回主菜单。但是,如果用户在主菜单上再次点击后退按钮,它会将他们带到他们刚刚逃离的屏幕。所以它每次只是循环回到前一个屏幕。
这是主菜单的设置方式:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
stopService(new Intent(MenuActivity.this, BGMusicService.class));
MenuActivity.this.finish();
}
return super.onKeyDown(keyCode, event);
}
如果我在第一次加载主菜单时按下后退按钮,它将正常工作并关闭游戏。如果我之前点击后退按钮从一个屏幕进入主菜单,它只会搞砸。
更新:
好吧,那种工作。当我在主屏幕上按下后退按钮时,音乐停止,它就像试图关闭应用程序一样,但又闪回主屏幕。我每次都要打两次。