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 会保存在当前任务中。然后在这个其他项目中创建一个新的后台堆栈。再次单击第一项时,我想转到后台堆栈的顶部,因此请继续您所在的位置。
示例:
- A1 -> A2 -> A3(点击了抽屉项目)(所以后栈是(A1,A2,A3))
- A1 -> A4 -> A5(点击最后一个抽屉项目)
- A3(在 A1、A2、A3 中)
这可能吗?
注意:我使用活动,它是一个大型应用程序,活动更易于维护。
NavigationDrawer
的目的是简化导航,否则导航对于用户和程序员来说都将是复杂而繁琐的管理。你应该做的是,每当你从根Activity
(A1
)开始一个新的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 任何情况,它会是实现您要求的行为极具挑战性。
我已阅读这篇文章:http://developer.android.com/guide/components/tasks-and-back-stack.html
如果我没看错的话,它说你可以用新的 activity 创建一个新任务,而旧任务仍然有一个 backstack。他们还在谈论回归旧业。但是我没有找到如何实现这个。
我想要的:
我有一个导航抽屉。我想点击一个项目。当按下返回时,它会返回到根。但是如果你点击另一个项目,backstack 会保存在当前任务中。然后在这个其他项目中创建一个新的后台堆栈。再次单击第一项时,我想转到后台堆栈的顶部,因此请继续您所在的位置。
示例:
- A1 -> A2 -> A3(点击了抽屉项目)(所以后栈是(A1,A2,A3))
- A1 -> A4 -> A5(点击最后一个抽屉项目)
- A3(在 A1、A2、A3 中)
这可能吗?
注意:我使用活动,它是一个大型应用程序,活动更易于维护。
NavigationDrawer
的目的是简化导航,否则导航对于用户和程序员来说都将是复杂而繁琐的管理。你应该做的是,每当你从根Activity
(A1
)开始一个新的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 任何情况,它会是实现您要求的行为极具挑战性。