如何在不打开最后一个活动的情况下开设新活动?

时间:2015-02-07 22:56:50

标签: android

我正在做一个电子游戏。我希望应用程序有3个屏幕。演示屏幕,播放屏幕和结束屏幕。

我知道一个活动可以用意图开始,但我的问题是,这样做,最后一个活动将被堆叠,允许用户回到之前的活动(或屏幕)。

有没有办法避免这种情况?

2 个答案:

答案 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}回去。