Android如何仅在尚未创建活动时创建活动

时间:2012-03-31 12:17:27

标签: android

当我使用startActivity函数进行不同的活动时,我遇到了问题, 它们总是从头开始创建。即使之前访问过活动A,当我再次访问活动B然后再访问A时,再次创建活动A.

问题在于后退按钮,因为如果我进入活动A然后是B然后是A然后是B, 为了关闭应用程序,我必须按下按钮4次。 我猜它不应该像它一样,用户应该能够在第一次按下按钮时进入活动A,第二次按下应该关闭应用程序。

如何解决这个问题? 问候

6 个答案:

答案 0 :(得分:1)

如果您有以下活动转换:

活动A - >活动B. 活动B - >活动A

并且您希望用户在这种情况下返回到活动A的相同实例,也许您只需要在为活动A调用startActivity()之后调用活动B中的finish()?

如果这没有帮助,请向我们提供有关您尝试做的更多信息。

答案 1 :(得分:0)

确保您实施onSaveInstanceState并准备好从Bundle onCreate恢复您的活动。这就是你重新建立活动回归的方式。

答案 2 :(得分:0)

将launcheMode =“singleTask”添加到清单

中的活动中

答案 3 :(得分:0)

您需要将FLAG_ACTIVITY_SINGLE_TOP设置为启动活动A的意图。这样做会导致您之前创建的活动重复使用。确保您使用onNewIntent方法处理后续意图。 For more info

答案 4 :(得分:0)

当您从B开始活动A时,您需要设置标志 FLAG_ACTIVITY_REORDER_TO_FRONT ,反之亦然,例如

i = new Intent("....ActivityAorB");
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);

答案 5 :(得分:0)

到目前为止,我已尝试过提出的解决方案,但他们没有为我做这些。 然而,在开始活动时使用标志 FLAG_ACTIVITY_CLEAR_TOP 的是什么。

感谢你指出我正确的方向。