gpt4 book ai didi

android - Back Stack、Splash 和 TabActivity

转载 作者:行者123 更新时间:2023-11-29 02:09:12 25 4
gpt4 key购买 nike

我已经搜索过 SO 并找到了一般问题的几个答案,并且已经尝试了所有答案但没有成功。我真的不了解返回堆栈的工作方式、Intent 标志或 finish 方法。这是我的设置:

在应用程序启动时,会出现一个初始屏幕,其中几个 AsyncTasks 在后台运行并检查几个网络服务器以获取更新的内容。 ProgressDialogs 报告状态。完成后(通过最后一个 onPostExecute),我启动一个新的 Activity(“Home”)。这似乎反射(reflect)了其他一些帖子,但我认为我的错误是由于 Home 是一个 TabActivity,有 4 个选项卡,最初在选项卡 0 上调用 setCurrentTab。

因此,使用之前发布的建议:

  1. android:noHistory="true"在 Splash Activity 上
  2. 在启动 Home TabActivity 后调用 Splash.this.finish()
  3. 设置 Intent.FLAG_ACTIVITY_CLEAR_TOP 的 Home TabActivity Intent 标志
  4. 设置 Intent.FLAG_ACTIVITY_NO_HISTORY 的 Home TabActivity Intent 标志

用户看到启动画面,TabActivity 启动,用户单击另一个选项卡,然后返回 - 应用程序关闭(不是强制关闭 - 只是关闭回到设备主屏幕)。

如果我不使用其中任何一个,当用户在更改到另一个选项卡后返回时,他们会返回到初始屏幕并被卡住(我可以添加一个按钮或其他东西将他们带到主页 TabActivity 但是这不是最佳的)。

期望的结果是用户看到 Splash,被带到主页 TabActivity,单击另一个选项卡,然后返回,他应该被带回初始设置的选项卡(选项卡 0)。

欢迎任何见解。

蒂亚

最佳答案

后台堆栈实际上正式称为 Activity 堆栈 - 每次您启动一个 Activity 时,它都会被推到堆栈的顶部(除非您设置了您提到的其中一个标志)。

这意味着除非您的主应用中的每个选项卡都是一个单独的 Activity ,否则默认的返回键行为将是离开您的主应用 Activity 。

您可以通过 taking over the back key 控制它或者通过覆盖选项卡切换行为来启动不同的 Activity 。

关于android - Back Stack、Splash 和 TabActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8428891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com