我的应用程序在用户第一次运行应用程序时显示注册活动,如下所示:
- ActivitySplashScreen(欢迎来到游戏,注册账号?)
- ActivitySplashScreenSignUp(很好,填写此信息)
- ActivityGameMain(主游戏画面)
因此,当用户单击每个屏幕上的按钮时,活动会以完全相同的顺序相互启动。
当用户从活动 #2 转到 #3 时,是否可以将 #1 和 #2 从历史堆栈中完全擦除?我想要这样,如果用户在#3,并点击后退按钮,他们只是去主屏幕,而不是回到启动屏幕。
我想我可以通过任务来完成这个(即在#3上开始一个新任务)但想看看是否有更简单的方法,
谢谢
原文由 Mark 发布,翻译遵循 CC BY-SA 4.0 许可协议
在这里,我列出了完成此任务的几种方法:
转到 manifest.xml- 并输入 android:noHistory=“true”,以从堆栈中删除活动。
从当前活动切换到其他活动时,在意图中将标志设置为 (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);这里
注意:放置意图标志可能会导致一段时间的空白屏幕(在切换活动时)。