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.
答案 0 :(得分:0)
我使用Activity.finish()隐藏了Backstack中的Activity。
举个例子:
用户看到活动B并开始活动C.说明C调用结束后隐藏B从后台堆栈:
startActivity(<Activity-C intent>);
finish();