0

我看了这篇文章:http://developer.android.com/guide/components/tasks-and-back-stack.html的Android创建不同backstacks(任务),并返回到他们

如果我读它正确它说,你可以创建新任务与新的活动,而旧的任务仍具有堆栈中。他们也在谈论重返旧时代。但是我没有找到如何实现这一点。

我想要什么:

我有抽屉式导航。我想点击一个项目。当按下后退时,它会回到根部。但是,如果您单击另一个项目,则堆栈会保存在当前任务中。然后在这个其他项目中创建一个新的后台堆栈。当再次点击第一个项目时,我想要进入叠堆顶部,所以继续往下走。

实施例:

  1. A1 - > A2 - > A3(抽屉项点击)(以便返回堆栈是(A1,A2,A3))
  2. A1 - > A4 - > A5(最后抽屉项点击)
  3. A3(随着堆栈中A1,A2,A3)

这可能吗?

注:我与活动一起工作,它是一个大型应用程序,活动更容易维护。

+0

您能否提供一个视觉示例,确切地说明您想要的后台行为是什么? – 2015-02-23 11:29:10

+0

@ZygoteInit我试图给你一个视觉例子。我希望这已经足够。我想要的是记得后台堆栈,所以当我回到我的导航抽屉里的一个项目时,我可以继续我最后一次点击该项目的位置 – 2015-02-23 11:36:26

+0

我明白了,请看我的回答 – 2015-02-23 12:09:26

回答

1

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总是返回堆栈中的根。

我不知道你有什么具体原因希望你描述的行为,但我会考虑我上面描述的是合适的,优雅地处理叠堆。在任何情况下,这将是非常具有挑战性的实现你所要求的行为。

+0

我已经这样做了,但谢谢。我想要的是在按下另一个导航抽屉项目时“保存”(排序)后台堆栈,因此当您返回时,您可以继续进行之前的活动。你明白吗?我发现很难解释哈哈:P – 2015-02-23 12:52:56

+0

我明白了,正如我所说的,编写可靠的代码将非常困难:/ – 2015-02-23 12:55:21

+0

Ahh好吧,对不起。希望这是可能的,因为Android已经处理了它本身,但太糟糕了。感谢您的帮助! – 2015-02-23 12:59:22

相关问题