我想问类似的问题:
返回上一屏幕而不创建新实例 https://stackoverflow.com/questions/11715848/go-back-to-previous-screen-without-creating-new-instance
但是我不希望 Activity A 经过 onCreate 回调,我想以相同的状态返回到前一个实例。如何在不调用多个 finish() 的情况下实现这一目标?
当您浏览应用程序时,不需要 finish() 活动。相反,您可以维护您的 Activity 后台并仍然实现您的目标。假设您有 4 个活动,如下所示:
A --> B --> C -->D
其中 D 是最顶层活动,A 是根活动。如果您“回退”到 Activity B,那么您需要做两件事以避免触发 B 的 onCreate 方法。
1.) 使 B 成为“单任务” Activity。您可以在 Android Manifest 中执行此操作。简而言之,这意味着此任务中只会存在 B 的一个“实例”。如果 B 在被调用时已经在运行,那么它将简单地被带到前面.这就是你的做法。
<activity
android:name=".ui.MyActivity"
android:launchMode="singleTask"/>
但你不想只把 B 带到前面。你想“回退”到 B,这样你的筹码看起来像
A-->B
2.) 将此标志添加到“开始”B 的意图中。这可确保删除 C 和 D。
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
现在,当“D”向 B 调用新的 Intent 时,B 将被恢复,而 C 和 D 将被删除。 B不会被重新创建,它只会调用onNewIntent。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)