gpt4 book ai didi

android - 设备后退按钮与操作栏后退按钮的 Activity 生命周期差异

转载 作者:行者123 更新时间:2023-11-29 18:37:02 24 4
gpt4 key购买 nike

我目前正在学习 Activity 生命周期。我注意到以下几点:

  • 我有两个 Activity,A 和 B。
  • 当我从 Activity A 打开 Activity B 时,A 停止,B 被创建并启动。
  • 当我按下设备上的后退按钮时,B 被销毁,A 重新启动。
  • 但是当我改用 Actionbar 的后退/向上按钮时,B 被销毁,A 被销毁,然后 onCreate() 被调用。

为什么在 ActionBar 中使用向上按钮时 A 被销毁而不是重新启动?

我希望我的问题很清楚,如果没有请发表评论。

最佳答案

当您按下 BACK 按钮时,这会调用当前 Activity 中的 onBackPressed()。该方法的默认行为(如果未在 Activity 中覆盖)是在 Activity 上调用 finish()。这将完成 Activity 并恢复其下方的 Activity

UP 按钮正在调用 startActivity() 并带有如下构建的 Intent:

Intent intent = new Intent(this, TargetActivityForUpButton.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

此代码将移除堆栈中的所有 Activity ,包括 TargetActivityForUpButton。然后它创建一个新的 TargetActivityForUpButton 实例并启动该 Actvity(您将看到 onCreate()onStart()onResume() 调用了 Activity

另请参阅 https://developer.android.com/training/implementing-navigation/ancestral 中的“导航至父 Activity ”部分

关于android - 设备后退按钮与操作栏后退按钮的 Activity 生命周期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53884175/

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