在双击时退出应用程序时出现问题
问题描述:
因此,如果我进行设置活动或进行游戏活动,我已经实施了双击退出我的主要活动,该活动可以正常退出。然而,如果我去主要活动 - > gameactivity - > gameoveractivity,然后按回它开始主要活动罚款,但然后双重压力只是返回到gameoveractivity,我不知道为什么当我从通过游戏活动开始mainactivity完成。在双击时退出应用程序时出现问题
mainscreenactivity:
// button listeners
playButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent gameActivityIntent = new Intent(MainScreenActivity.this, GameActivity.class);
startActivity(gameActivityIntent);
overridePendingTransition(R.anim.righttocenter, R.anim.centertoleft);
finish();
}
});
settingsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent settingsActivityIntent = new Intent(MainScreenActivity.this, SettingsActivity.class);
MainScreenActivity.this.startActivity(settingsActivityIntent);
overridePendingTransition(R.anim.righttocenter, R.anim.centertoleft);
}
});
gameactivity:
// handle hardware back button
@Override
public void onBackPressed() {
Intent mainScreenActivityIntent = new Intent(GameActivity.this, MainScreenActivity.class);
startActivity(mainScreenActivityIntent);
overridePendingTransition(R.anim.lefttocenter, R.anim.centertoright);
finish();
}
逻辑代码来处理要gameoveractivity:
if (weight.getBounds().intersect(player.getBounds())) {
timer.cancel();
gameTimer.cancel();
player.setTouched(false);
save(score, time);
Intent gameOverIntent = new Intent(this.getContext(), GameOverActivity.class);
this.getContext().startActivity(gameOverIntent);
((Activity) this.getContext()).finish();
}
gameoveractivity:
// handle hardware back button
@Override
public void onBackPressed() {
Intent mainScreenActivityIntent = new Intent(GameOverActivity.this, MainScreenActivity.class);
mainScreenActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
GameOverActivity.this.startActivity(mainScreenActivityIntent);
overridePendingTransition(R.anim.lefttocenter, R.anim.centertoright);
finish();
}
编辑:可以通过在创建gameoveractivityintent之后在游戏逻辑代码中添加以下内容来解决此问题:gameOverIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
。
答
管理通过将该修正此:
gameOverIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
在游戏逻辑代码
创建gameoveractivityintent之后。