Android如何跟踪和清除某些backstack

时间:2013-10-28 05:06:14

标签: android android-intent back-stack

My Activity backstack结构如下所示:

  

A(着陆页) - > B(列表屏幕) - > C(详细信息屏幕)
  | ----> d(帖子   项目屏幕) - > E(发布结果屏幕)

B& D是A的直接子女。

我想为用户提供一种从结果屏幕(E)查看详细信息(C)的方法。当他们离开时,我想删除D& E使他们在按下时无法返回。一旦用户从C按回来跳转,那么他们应该回到A.

编辑但是,用户可以按回E屏幕返回并在D屏幕上进行更改以修复他们所犯的任何错误,因此我也必须将D保持在后台堆叠。

这样做的最佳方式是什么?我是否应该阻止D& E进入后台并处理我自己的导航?有没有办法清除D& E专门并保留其他所有内容?或者有更好的方法吗?

我考虑使用Clear Top标记,但是如果用户从未访问过C,那么Clear top将无效,因为之后您无法返回A.

1 个答案:

答案 0 :(得分:0)

我使用Activity.finish()隐藏了Backstack中的Activity。

举个例子:

用户看到活动B并开始活动C.说明C调用结束后隐藏B从后台堆栈:

  startActivity(<Activity-C intent>);
  finish();