2

假设我有 4 个活动(A、B、C、D)

AppStart -> A -> B -> C -> D

我有一种情况,如果某些东西使 C 的必要性无效,我需要删除 C。

(某些内容无效:“例如”,C 显示产品的详细信息,如果用户在 C 中购买该产品,它将显示 D(您已购买!)当用户点击返回按钮时,用户不应看到产品页面)

因此,所需的场景:

AppStart -> A -> B -> C -> 某些东西使 C 的必要性无效并启动 D -> C 将新获得 FLAG_ACTIVITY_NO_HISTORY 标志,它将启动 D。

因此,刚启动 D 后,C 将被删除:

堆栈将是 A -> B -> D 并且每当用户点击“返回”时,用户将返回 B 而不是 C。

总而言之,我需要启动一个没有 FLAG_ACTIVITY_NO_HISTORY 标志的活动,但根据该活动中的操作使用该标志更新它。

这可能吗?

4

1 回答 1

0

在已启动的活动中调用 finish() 会将其从堆栈中删除。在启动另一个活动时使用它(在 StartActivity 之后立即),甚至当正在考虑的活动在后台时。不过要注意后一种情况下的泄漏

于 2013-05-18T10:30:47.903 回答