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

2024-03-03

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

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

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

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

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


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



android:launchMode="singleTask" 
  

我希望这有帮助,

Best,

-sekran

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 应用程序中管理多个 Activity 堆栈,就像在 iOS 上的 UITabBarController 中使用多个 UINavigationController 一样? 的相关文章

随机推荐