0

我的 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。

4

1 回答 1

0

我使用Activity.finish()从后台隐藏 Activity。

举个例子:

用户看到活动 B 并启动活动 C。在声明 C 调用完成以从后台堆栈中隐藏 B 之后:

  startActivity(<Activity-C intent>);
  finish();
于 2013-10-28T11:35:45.660 回答