三个活动堆栈

| 我正在尝试弄清楚如何实现一个有趣的概念。 假设我的应用程序底部有一个带有3个按钮的栏。我们将它们称为A,B,C。我希望您将它们视为应用程序的3个区域,每个区域都有自己的Activity堆栈。 假设我按B,首先进入B主屏幕。假设此屏幕具有某些功能,可将我带到另一个屏幕,例如列表中特定项目的详细信息。 现在,在详细信息屏幕上,我按下底部的按钮C,然后进入C主屏幕。 如果我按B(或按“后退”按钮),则希望用户被带到“ B活动”堆栈中的最后一个屏幕,该屏幕是详细信息屏幕,而不是主B屏幕。 这可能吗?如果我对事情的理解正确,我应该执行3项任务,其中1项针对A,1项针对B,1项针对C。我还要做什么?     
已邀请:
当然,这是可能的并且易于实现。但是,您必须阅读本文以了解如何实现。 您有3个根活动:A_main,B_main,C_main。每个活动都应开始一个新任务。为此,您需要: 在清单中为它们声明不同的相似性: 活动android:name = \“。A_main \” android:taskAffinity = \“。A \” 活动android:name = \“。B_main \” android:taskAffinity = \“。B \” /> 要启动(切换)任务,请使用标志(可以使用ApplicationContext)启动新的意图:
private static final int ROOT_INTENT_FLAG = 
    Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
为了提供ui机会在任务之间切换,您可以使用例如android菜单。 如果您想清除任务-只需添加标志Intent.FLAG_ACTIVITY_CLEAR_TOP 并且...您需要一些LauncherActivity,它将在您的应用程序启动时启动。此活动应恢复上次访问的任务并完成自身。要恢复-只需将意图与上面的标志一起使用(项目2)。     
实际上,您描述的场景仅包含一个活动堆栈。实际上将存在多少活动堆栈由Android OS控制,我们只能在规则下尽力而为。 根据描述,导航历史为
B_main -> B_details -> C_main
,而BACK为is2ѭ。如果在所有这三个按钮中都实现了三个按钮(可以通过自定义某些按钮面板并将其包含在布局文件中来完成),则实际上只有一个堆栈。     

要回复问题请先登录注册