0

假设我有 4 个活动,A、B、C 和 D。活动 A 启动 B,B 使用 Intent 启动 C。单击活动 C 中的按钮启动 D。单击后退按钮或关闭活动 D 应该将我带到活动 A。我通过使用活动 C 中的 FLAG_ACTIVITY_CLEAR_TOP 和 FLAG_ACTIVITY_SINGLE_TOP 标志启动活动 A 来实现这一点。活动 A 中的 onNewIntent,我启动了活动 D 所以单击返回或关闭 D 将转到 A。

我在开始和退出活动时使用进入和退出动画。对于上述场景,退出动画在Activity CI结束后启动Activity A。这里的问题是因为我在动画之后启动Activity,所以当Activity C动画下来时,我看到了后面的堆栈,即Activity B。我不想在后台堆栈中看到 Activity B,而是看到 Activity A。不知道如何实现这一点。

有没有办法清除堆栈的一部分然后开始一个新的活动?

4

2 回答 2

0

我相信您在问是否可以同时进行两项活动。您可以在当前活动上调用完成(),但是该活动将在那时完成并完成。

如果您想在不停止当前视图/活动的情况下打开另一个视图,您应该查看 Fragments。他们可以并行运行,不会有这个问题。

万一我误解了道歉。

于 2020-02-25T16:18:13.643 回答
0

像这样放置FLAG_ACTIVITY_CLEAR_TOP 之后startActivity(intent);

startActivity(i, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
于 2021-07-31T10:10:05.993 回答