当我使用startActivity函数进行不同的活动时,我遇到了问题, 它们总是从头开始创建。即使之前访问过活动A,当我再次访问活动B然后再访问A时,再次创建活动A.
问题在于后退按钮,因为如果我进入活动A然后是B然后是A然后是B, 为了关闭应用程序,我必须按下按钮4次。 我猜它不应该像它一样,用户应该能够在第一次按下按钮时进入活动A,第二次按下应该关闭应用程序。
如何解决这个问题? 问候
答案 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 的是什么。
感谢你指出我正确的方向。