gpt4 book ai didi

android - 返回 Activity 而不重新创建(不调用 onCreate())

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:30:30 26 4
gpt4 key购买 nike

我想问类似的问题:

Go back to previous screen without creating new instance

但是我不希望 Activity A 通过 onCreate 回调,我想返回到相同状态的上一个实例。如何在不调用多个 finish() 的情况下实现这一点?

最佳答案

在您浏览应用程序时,无需 finish() Activity 。相反,您可以维护您的 Activity back-stack 并仍然实现您的目标。假设您有 4 个这样的 Activity :

A --> B --> C -->D

其中 D 是最顶层的 Activity ,A 是根 Activity 。如果您要“退回到” Activity B,那么您需要做两件事以避免触发 B 的 onCreate 方法。

1.) 使 B 成为“SingleTask” Activity 。您可以在 Android list 中执行此操作。简而言之,这意味着此任务中将永远存在 B 的一个“实例”。如果 B 在被调用时已经在运行,那么它将被简单地带到前面。这就是您的做法。

  <activity
android:name=".ui.MyActivity"
android:launchMode="singleTask"/>

但是您不想只将 B 放在前面。你想“回落”到 B 以便你的堆栈看起来像

A--> B

2.) 将此标志添加到“启动”B 的 Intent 中。这可确保删除 C 和 D。

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

现在当“D”向 B 调用新 Intent 时,B 将恢复,C 和 D 将被删除。 B不会被重新创建,只会调用onNewIntent。

关于android - 返回 Activity 而不重新创建(不调用 onCreate()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36599717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com