Android导航清除整个backstack

时间:2014-01-30 22:59:04

标签: android android-activity android-intent

我目前有一个Android应用程序,在浏览对象层次结构的过程中会创建一个这样的后栈。

BrowseActivity(正在启动实例) - > BrowseActivity(实例B) - > BrowseActivity(实例C) - > ViewObjectActivity

视图对象活动中有一个菜单按钮,我希望将用户带回BrowseActivity(Starting Instance)并销毁其余的浏览活动。

使用Intent.FLAG_ACTIVITY_CLEAR_TOP只会破坏ViewObjectActivity并将其余内容留在后台堆栈中。

在清单中将BrowseActivity设置为“singleTop”会破坏为另一个导航创建另一个实例的能力。

任何可能实现这一点的方式我可能会忽略?

2 个答案:

答案 0 :(得分:1)

如果您希望菜单选项将用户带回第一个活动,请执行此操作 - 将用户恢复到第一个活动。

让您的第三个活动以特定结果退出,该结果告诉第二个活动也退出。您可以将此扩展到您想要的活动数量 - 只要除第一个活动之外的所有活动都退出,您就可以了。

答案 1 :(得分:0)

您需要在一对中使用此标志。以下一直对我有用

  Intent.FLAG_ACTIVITY_CLEAR_TOP
  Intent.FLAG_ACTIVITY_NEW_TASK