我的 Activity backstack 结构如下所示:
A(登陆页面)-> B(列表屏幕)-> C(详细信息屏幕)
|----> D(发布项目屏幕)-> E(发布结果屏幕)
B 和 D 都是 A 的直接子代。
我想为用户提供一种从结果屏幕(E)查看详细信息(C)的方法。当他们离开的时候,我想移除 D&E,这样他们在按下后就不能回去了。一旦用户从 C 按下返回时跳转,那么他们应该返回 A。
编辑:但是,用户可以在 E 屏幕上按回以返回并在 D 屏幕中进行更改以修复他们犯的任何错误,所以我还必须将 D 保留在后台堆栈中。
这样做的最佳方法是什么?我应该阻止 D&E 进入 backstack 并处理我自己的导航吗?有没有办法专门清除D&E并保留其他所有内容?还是有更好的方法来做到这一点?
我考虑过使用Clear Top
标志,但如果用户在 Clear top 之前从未访问过 C 将无法正常工作,因为之后您无法返回 A。