9

在此处输入图像描述

如图所示,流程是这样的。因此,每当用户单击徽标按钮时,应调用 Activity A。作为简单的解决方案,我们可以使用这种方法......

Intent intent = new Intent(activity, activityToStart);
startActivity(intent);

但是这个活动将为我的应用程序创建一个新活动。但是当我们在流程图中前进时,我需要调用同一个活动实例。从 Activity A 到 B 然后再在 B 上调用可以很容易地调用finish(),但从 Activity C 或 D,如何回到 A。

我的想法不多了,但没有得到任何富有成果的结果。如果您有任何建议或在我出错的任何地方,请帮助我。提前致谢。

4

5 回答 5

19

要从 D 回到 A,请使用 Intent Flags。

Intent intent = new Intent(activity, activityToStart);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent);

FLAG_ACTIVITY_CLEAR_TOP,它将调用堆栈上的活动,而不是创建新活动,并将所有活动弹出正在调用的活动。

于 2012-07-30T05:34:11.500 回答
1

而不是使用

Intent intent = new Intent(activity, activityToStart);
startActivity(intent);

利用

Intent intent = new Intent(activity, activityToStart);
startActivityforResult(intent,1234);

这将确保活动 A 未被终止,并且当您完成活动 C 时,活动 A 将恢复。

注意:- 每当您创建新活动时,未完成(退出)主机活动,主机活动以 LIFO 顺序保存在堆栈中

后进先出:-Last In First Out

于 2012-07-30T05:37:50.127 回答
0

通过使 Activity A 成为“SingleTask”,您可以实现这一目标。当一个 Activity 在 SingleTask 中单击 Home 按钮时,其他 Activity 将从堆栈中删除。

有关 Android Activites 的更多信息,请参阅这些链接...

链接 1 - Android 基础知识

链接 2 - 另一个类似的问题

于 2012-07-30T05:37:36.733 回答
0

使用 ViewFlipper 在同一活动的不同窗口之间来回切换。

ViewFlipper vf = (ViewFlipper) findViewById( R.id.view_flipper);

转到下一个窗口

vf.showNext();

转到上一个窗口

vf.showPrevious();
于 2012-07-30T05:37:39.583 回答
0

我不确定,这是否正确,但你可以试一试!

当您从 Activity-B 开始打开新的活动时,您可以完成()当前活动。

IE

打开 Activity-C => 完成 Activity-B 并启动 Activity-C

打开 Activity-D => 完成 Activity-C 并启动 Activity-D

现在,当您按回时,Activity-A 将打开。

于 2012-07-30T05:38:21.830 回答