我正在做一个视频游戏。我希望这个应用程序有3个屏幕。演示屏幕、播放屏幕和结束屏幕。
我知道一个活动可以在有意图的情况下启动,但我的问题是,在这样做的过程中,最后一个活动会被堆叠,从而允许用户返回到前一个活动(或屏幕)。
有办法避免这种情况吗?
在要关闭的活动中使用finish()
方法。
尽管其他人已经介绍过,如果您不希望用户返回到活动,您可以简单地调用finish()
方法来关闭活动,但我希望快速介绍另一个问题。
安卓设计原则,或者更具体地说,导航原则告诉我们,我们不应该过多地摆弄后退按钮的默认行为。直接引用指南;
一致的导航是整体用户的重要组成部分经验没有什么比基本导航更让用户沮丧的了行为不一致且出乎意料。
因此,与其阻止用户返回进入屏幕,不如考虑一个提示,通知用户他们将离开游戏。这样,后退按钮将继续按预期工作,您的用户不会突然退出游戏。您可以像这样覆盖后退按钮;
@Override
public void onBackPressed() {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Leaving the Game");
alert.setMessage("Do you want to leave the game? You might lose your progress.");
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
YourActivity.this.finish();
}
});
alert.setNegativeButton("Cancel", null );
alert.show();
}
此外,需要注意的是,如果您选择使用finish()
简单地关闭上一个Activity
,则后退按钮将使用户完全退出应用程序,因为没有Activity
可返回。