Android 创建不同的 backstacks(任务)并 return 给它们

Android create different backstacks (tasks) and return to them

我已阅读这篇文章:http://developer.android.com/guide/components/tasks-and-back-stack.html

如果我没看错的话,它说你可以用新的 activity 创建一个新任务,而旧任务仍然有一个 backstack。他们还在谈论回归旧业。但是我没有找到如何实现这个。

我想要的:

我有一个导航抽屉。我想点击一个项目。当按下返回时,它会返回到根。但是如果你点击另一个项目,backstack 会保存在当前任务中。然后在这个其他项目中创建一个新的后台堆栈。再次单击第一项时,我想转到后台堆栈的顶部,因此请继续您所在的位置。

示例:

  1. A1 -> A2 -> A3(点击了抽屉项目)(所以后栈是(A1,A2,A3))
  2. A1 -> A4 -> A5(点击最后一个抽屉项目)
  3. A3(在 A1、A2、A3 中)

这可能吗?

注意:我使用活动,它是一个大型应用程序,活动更易于维护。

NavigationDrawer 的目的是简化导航,否则导航对于用户和程序员来说都将是复杂而繁琐的管理。你应该做的是,每当你从根ActivityA1)开始一个新的Activity时,你应该像这样开始它:

Intent intent = new Intent(this, A2.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
startActivity(intent);

这将确保 A1始终 后台堆栈的根。

我不知道你想要你描述的行为有什么具体原因,但我认为我上面描述的是适当的,优雅地处理 backstack.In 任何情况,它会是实现您要求的行为极具挑战性。