0

有4个主要活动:

    ProfileMenu.class

    CreateNewProfileStepOne.class

    CreateNewProfileStepTwo.class

    MainMenu.class

假设从 ProfileMenu.class 中,用户选择“创建新配置文件”作为操作。这将启动 CreateNewProfileStepOne.class,用户在其中输入姓名、地址等数据。在 CreateNewProfileStepTwo.class 中也是如此。此时,用户可以在 CreateNewProfileStepOne 和 CreateNewProfileStepTwo 之间自由来回切换,所有数据都通过 Intent 保存和传递。如果用户从 CreateNewProfileStepOne.class 备份,所有输入的数据都会丢失,用户将不得不重新从头输入。

然而,在 CreateNewProfileStepTwo.class 活动中点击“确认配置文件”按钮后,我想将用户发送到 MainMenu.class,并终止之前的活动 ProfileMenu、CreateNewProfileStepOne 和 CreateNewProfileStepTwo。

当我进入 MainMenu.class 时,我将如何终止这 3 个活动?据我所知,finish() 只作用于一个且只有一个活动——它被调用的当前活动。在我准备好进入 D 之前,我不想杀死 A、B 或 C。当我进入 D 时,我想同时杀死 A、B 和 C。

4

2 回答 2

2

当您创建Intent启动时MainMenu,将此标志添加到 Intent :Intent.FLAG_ACTIVITY_CLEAR_TOP

Intent i = new Intent(MyCurrentActivity.this, MainMenu.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

不会保留任何历史记录,用户将无法返回之前的活动

于 2013-09-04T15:19:30.580 回答
2

当您离开活动去其他活动时,活动将被终止。在这些活动之间来回切换是通过重新创建这些活动来完成的。

于 2013-09-04T15:17:15.543 回答