【发布时间】:2021-03-12 05:35:16
【问题描述】:
根据我对 Android 中 Activity 和 Fragments 的理解,fragment 是调用它的 Activity 的子部分。
那么我想知道的是,如果我们完成或杀死片段所在的Activity,它将如何影响片段?
碎片也会被破坏吗?还是片段的状态独立于包含它的活动?请对此提供适当的说明...
【问题讨论】:
标签: android android-layout android-fragments
根据我对 Android 中 Activity 和 Fragments 的理解,fragment 是调用它的 Activity 的子部分。
那么我想知道的是,如果我们完成或杀死片段所在的Activity,它将如何影响片段?
碎片也会被破坏吗?还是片段的状态独立于包含它的活动?请对此提供适当的说明...
【问题讨论】:
标签: android android-layout android-fragments
根据我对 Android 中的活动和片段的理解,片段是调用它的 Activity 的子部分。
是的,你是对的,片段是在运行时动态添加的子部分
那么我想知道的是,如果我们完成或杀死片段所在的Activity,它将如何影响片段?
如果你杀死/完成一个 Activity 片段也将被销毁
注意:Fragment 生命周期取决于 Activity 生命周期,如果 Activity 死了,那么 Fragment 就会死。
在 Activity 上构建片段就像构建 2,3 或 4 层建筑。如果基地被摧毁,那么其他故事就不应该是稳定的。只要记住这个规则。这将帮助您理解。此外,您还可以在 Activity 和 Fragment 生命周期中应用日志记录。
【讨论】:
Activity 状态如何影响 Fragment
因为一个Fragment总是由一个Activity托管,所以Fragment生命周期直接受宿主Activity 生命周期。比如当Activity暂停时,所有Fragments都在里面,当Activity被销毁时,所有片段。
Activity 的每个生命周期回调都会导致每个 Fragment 的类似回调,如下表所示。例如,当 Activity 接收到onPause() 时,它会为 Activity 中的每个 Fragment 触发一个 Fragment onPause()。
也来自官方指南:“例如,对于一个 Activity,这个 (DESTROYED) 状态在 Activity 的 onDestroy 调用之前达到” 链接:https://developer.android.com/reference/androidx/lifecycle/Lifecycle.State#DESTROYED
【讨论】:
由于 Fragment 嵌入在一个 Activity 中,它会在 活动被杀死。由于活动的内容首先被杀死,片段将 在活动被销毁之前被销毁。
【讨论】: