gpt4 book ai didi

android - 如何在 Android 应用程序中管理多个 Activity 堆栈,就像在 iOS 上使用 UITabBarController 中的多个 UINavigationControllers 一样?

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:02 24 4
gpt4 key购买 nike

iOS 应用程序的一个相当常见的模型似乎只有一个 UITabBarController,其中每个选项卡基本上都包含一个 UINavigationController,即一堆 Controller ,然后按一个选项卡切换到相应堆栈的顶部。我可以在没有大量自定义代码的情况下在 Android 上获得相同的行为吗? (注意:我在 Android 上使用菜单而不是选项卡)。

看完http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html我能看到的最接近的是有多个任务,每个任务代表一个堆栈(类似于 UINavigationController),并使用 FLAG_ACTIVITY_NEW_TASK 切换到另一个任务/堆栈。当我切换时,有没有办法直接到栈顶,还是我需要自己保留那 block 状态?

我自己保持该状态的一个问题:我注意到,如果我的应用程序启动一个启动新进程的 Intent,有时我原来的应用程序的进程会被终止(我认为),并且我的所有全局状态都会被破坏。

我能想到的唯一其他解决方案是每个堆栈都有一个虚拟 Activity,在我从第 N 个堆栈切换之前基本上推送 DummyActivityN,并且在切换到第 M 个堆栈时,使用 FLAG_ACTIVITY_NEW_TASK 启动 Activity DummyActivityM,并且然后让 DummyActivityM 立即 finish() 本身。

最后一个问题:当我使用后退按钮导航到其中一个堆栈的底部时,我想再次按下后退按钮而不是转到另一个堆栈/任务。但这似乎很容易通过启动 Intent 转到主屏幕来克服;还有更好的吗?

最佳答案

如果我正确理解您的问题,如果您将此参数添加到 AndroidManifest.xml 中的 Activity 声明,则由您的自定义菜单启动的 Activity 将仅创建一次 - 在您移动选项卡时保持它们的状态。

android:launchMode="singleTask" 

希望对你有帮助

最好的,

-塞克兰

关于android - 如何在 Android 应用程序中管理多个 Activity 堆栈,就像在 iOS 上使用 UITabBarController 中的多个 UINavigationControllers 一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6614635/

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