片段状活动的后台行为

问题描述:

我有以下情况,并希望避免使用片段。片段状活动的后台行为

Act X <-> (Act A <-> Act B <-> Act C) --> Act X.

应当有一个后退导航成为可能。完成该过程(A-B-C)后,我想返回到我的入口点(从Backstack例如Act X)。此外,我希望能够在任何时候关闭该过程。例如:用户在Act B并按CancelButton - >返回到入口点(Act X)。

我想有一个单独的“活动回栈”在那里我可以在任何时候(A,B或C)取消特定进程,回到我的入口点(X,...)。这可能只使用活动?我尝试使用单独的taskAffinity(在清单中)与Intent.FLAG_ACTIVITY_NEW_TASK,但我想避免启动“单独的应用程序”。

+0

FLAG_ACTIVITY_REORDER_TO_FRONT或FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_SINGLE_TOP的组合。根据你的描述,你很清楚你期望在用户通过你描述的活动链进展之后,后退堆栈的状态如何。 – CommonsWare

+0

我想要有一个“正常”背印行为。 因此,A-B-C活动适用于我的应用程序中的配置。当我完成整个过程时,我想回到我的入门点。此外,我想提供标准的后退导航**加**有机会在任何时间/活动取消整个“配置”过程。 所以像一种群体 – Maxi

+0

的-B-C的行为“我希望有一个‘正常’的回压的行为” - 即没有澄清的东西。当用户到达右边的“Act Home”,然后按下BACK时,会出现什么?法案C? Act Home的另一个实例?用户的主屏幕,因为最右边的Act Home是背面堆栈中唯一的东西?还有别的吗? – CommonsWare

事实是没有像“popBackstack”这样的事情,直到与活动点。我想你可以:如果存在,当用户按下取消

  • 覆盖onBackPressed在一个法案

    • 开始与法X和FLAG_ACTIVITY_CLEAR_TOP标志一个新的意图,使该法X到前面,B,C做与用户按back时上述选项相同。但在这种情况下,您可能需要指定动画来模拟back效果。

    我不知道为什么你只需要使用活动,但如果你有2个活动(X和Y),会更容易。 Y包含片段A,B,C。像这样,您可以在Act Y中覆盖onBackPressed,并在用户对任何片段按back时完成活动。您会自动回到Act X.