我正在做一个电子游戏。我希望应用程序有3个屏幕。演示屏幕,播放屏幕和结束屏幕。
我知道一个活动可以用意图开始,但我的问题是,这样做,最后一个活动将被堆叠,允许用户回到之前的活动(或屏幕)。
有没有办法避免这种情况?
答案 0 :(得分:2)
在要关闭的活动中使用finish()
方法。
答案 1 :(得分:1)
虽然其他人已经介绍过,如果您不希望您的用户能够返回活动,您可以简单地调用finish()
方法关闭活动,我还希望快速介绍另一个问题。< / p>
Android Design Principles,或者更具体地说Navigation Principles告诉我们,我们不应该过多地使用后退按钮的默认行为。指南的直接引用;
一致的导航是整个用户的重要组成部分 经验。与基本导航相比,很少有东西会让用户感到沮丧 以不一致和意想不到的方式表现。
因此,不要阻止用户返回到输入屏幕,而是考虑通知用户他们将离开游戏的提示。这样,后退按钮继续按照预期工作,并且您的用户不会突然从游戏中丢失。您可以像这样覆盖后退按钮;
@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();
}
此外,作为备注,如果您选择使用Activity
关闭之前的finish()
,则后退按钮会将用户完全退出应用,因为没有{{1}回去。