从历史堆栈中删除活动

新手上路,请多包涵

我的应用程序在用户第一次运行应用程序时显示注册活动,如下所示:

  1. ActivitySplashScreen(欢迎来到游戏,注册账号?)
  2. ActivitySplashScreenSignUp(很好,填写此信息)
  3. ActivityGameMain(主游戏画面)

因此,当用户单击每个屏幕上的按钮时,活动会以完全相同的顺序相互启动。

当用户从活动 #2 转到 #3 时,是否可以将 #1 和 #2 从历史堆栈中完全擦除?我想要这样,如果用户在#3,并点击后退按钮,他们只是去主屏幕,而不是回到启动屏幕。

我想我可以通过任务来完成这个(即在#3上开始一个新任务)但想看看是否有更简单的方法,

谢谢

原文由 Mark 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 285
1 个回答

在这里,我列出了完成此任务的几种方法:

  1. 转到 manifest.xml- 并输入 android:noHistory=“true”,以从堆栈中删除活动。

  2. 从当前活动切换到其他活动时,在意图中将标志设置为 (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)。在下面的示例中进行了演示。

    Intent intent = new Intent(CurrentActivity.this, HomeActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK) startActivity(intent);这里

注意:放置意图标志可能会导致一段时间的空白屏幕(在切换活动时)。

原文由 Aparna Juhi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题