2

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

如果我没看错的话,它说你可以创建一个带有新活动的新任务,而旧任务仍然有一个后台堆栈。他们也在谈论回到旧的塔克斯。但是我没有找到如何实现这一点。

我想要的是:

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

例子:

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

这可能吗?

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

4

1 回答 1

1

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

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

这将确保它始终A1是backstack 的根。

我不知道你想要你描述的行为的具体原因是什么,但我会认为我上面描述的内容是适当的、优雅的后台处理。无论如何,实现你的行为将是极具挑战性的正在要求。

于 2015-02-23T12:08:43.613 回答