0

我有 3 项活动。从第三个活动开始,我需要在单击 GUI 按钮时回到第一个活动。我知道我可以单击“物理”后退按钮 2 次来完成此操作,但这不是一个选项。

那么,有什么方法可以在不创建新实例的情况下显示第一个活动?我可以将第一个活动的实例传递给第三个活动,这没有问题。

4

3 回答 3

1

在您的意图中使用FLAG_ACTIVITY_CLEAR_TOP

从文档中:

例如,考虑一个由以下活动组成的任务:A、B、C、D。如果 D 调用 startActivity() 并带有一个解析为活动 B 的组件的 Intent,那么 C 和 D 将完成并且 B 接收给定的 Intent ,导致堆栈现在是:A,B。

要使用:

Intent intent = new Intent(getBaseContext(), FirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
于 2013-07-19T07:24:38.133 回答
0
Intent intent = new Intent(src_ctxt, dest.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
src_ctxt.startActivity(intent);

这应该这样做

于 2013-07-19T07:25:16.800 回答
0

我认为你需要让你的活动 B 单一实例,如果它已经创建你不想再次创建,那就是活动的启动模式可以在清单 android:launchMode 中定义,它定义了活动将如何被实例化。

在你的情况下使用 android:launchMode="singleInstance"

或者

您可以使用标志 Intent.FLAG_ACTIVITY_NEW_TASK。如果活动已经在运行,它将把它放在前面而不是创建新活动。

于 2013-07-19T07:26:53.813 回答