[译] Android 生命周期备忘录 — 第三部分:Fragments

简介: 本节中我们将介绍依附在 Activity 上的 Fragment 的行为。

原文地址:The Android Lifecycle cheat sheet — part III : Fragments
原文作者:Jose Alcérreca

译文出自:掘金翻译计划
本文永久链接:github.com/xitu/gold-m…
译者:Qiuk17
校对者:xiaxiayang, DevMcryYu


本系列文章:
第一部分:Activities — 单一 activity 的生命周期
第二部分:多个 activities — 跳转和返回栈(back stack)
第三部分: Fragments — Activity 和 Fragment 的生命周期(即本文)
第四部分:ViewModels、透明 Activities 及启动模式

为了更方便地查询,你可以去查阅 PDF 版本的图表备忘录。
本节中我们将介绍依附在 Activity 上的 Fragment 的行为。不过别把这种情况和加入到返回栈的 Fragment 搞混了(请参看 Tasks and Back Stack 这篇文章来学习有关 Fragment 事务和返回栈的知识)。

场景 1:当带有 Fragment 的 Activity 启动和终止时

image.png

场景 1:当带有 Fragment 的 Activity 启动和终止时
虽然 Activity 的 onCreate 方法保证在 Fragment 的 onCreate 方法之前被调用,但是其它像 onStart 和 onResume 这样的回调会被并行执行,因此它们会被以任意顺序调用。例如,系统可能先调用 Activity 的 onStart 方法再调用 Fragment 的 onStart,但在此之后却先调用 Fragment 的 onResume 方法再执行 Activity 的 onResume。
小心管理它们执行的顺序和时间,以避免两者竞争带来的问题。

场景 2:当带有 Fragment 的 Activity 被旋转时

image.png

场景 2:当带有 Fragment 的 Activity 被旋转时

状态管理
Fragment 状态的保存和恢复与 Activity 状态非常相似,区别在于 Fragment 中没有 onRestoreInstanceState 方法,但是 Fragment 的 onCreate、onCreateView 和 onActivityCreated 方法中的 Bundle 对象是可被获取的。
Fragment 是可以被保留的,这意味着当配置被改变时可以使用同一个 Fragment 实例。正如接下来的场景中所描述的,被复用的 Fragment 与普通 Fragment 有些许不同。

场景 3:当带有可被复用的 Fragment 的 Activity 被旋转时

image.png

场景 3:当带有可被复用的 Fragment 的 Activity 被旋转时
Fragment 对象既没有被创建也没有被销毁,因为在 Activity 被重新创建后,同一个 Fragment 实例被复用了。因此在 onActivityCreated 过程中 Bundle 仍然是可被获取的。
使用可被复用的 Fragment 是不被推荐的,除非你想在配置改变时使用非 UI 的 Fragment 来存储数据。它的功能和内部组件库中的 ViewModel 相同,但 ViewModel 具有更简洁的 API。


作者:掘金翻译计划
链接:https://juejin.im/post/5ca3517a6fb9a05e462b967a
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

目录
相关文章
|
7月前
|
数据库 Android开发 开发者
Android基础知识:请解释Activity的生命周期。
Android基础知识:请解释Activity的生命周期。
77 2
|
Android开发
Android一些特殊情况下的生命周期分析
Android一些特殊情况下的生命周期分析
66 0
|
2月前
|
Android开发 开发者 UED
深入理解安卓应用开发中的生命周期管理
本文旨在探讨安卓应用开发中生命周期管理的重要性,以及如何有效利用生命周期解决常见问题。通过分析安卓应用生命周期的不同阶段及其特点,提供实用的代码示例和调试技巧,帮助开发者优化应用性能,提升用户体验。
42 8
|
2月前
|
Java Android开发 UED
深入探索安卓应用开发中的生命周期管理:从创建到销毁的全过程
在安卓应用开发中,理解并妥善管理应用及活动(Activity)的生命周期至关重要。本文将详细解析从应用创建到销毁的整个生命周期过程,以及如何通过高效管理提升应用性能与用户体验。
75 4
|
4月前
|
Android开发 UED 开发者
探索安卓应用的生命周期管理
【8月更文挑战第31天】在开发安卓应用时,理解并妥善处理应用的生命周期是至关重要的。本文将通过浅显易懂的方式,带你了解安卓应用的生命周期,并通过代码示例展示如何在实际应用中进行有效的生命周期管理。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和实用技巧。
|
6月前
|
Android开发 UED
Android Activity的生命周期详解
Android Activity的生命周期详解
|
7月前
|
Android开发
Android Studio APP开发入门之活动Activity中启停活动页面的讲解及实战(附源码,包括Activity的启动结束、生命周期、跳转等)
Android Studio APP开发入门之活动Activity中启停活动页面的讲解及实战(附源码,包括Activity的启动结束、生命周期、跳转等)
124 0
|
7月前
|
缓存 Android开发 开发者
安卓现代化开发系列——从生命周期到Lifecycle【扩展包1已更新】-3
安卓现代化开发系列——从生命周期到Lifecycle【扩展包1已更新】
88 0
|
7月前
|
安全 API Android开发
安卓现代化开发系列——从生命周期到Lifecycle【扩展包1已更新】-2
安卓现代化开发系列——从生命周期到Lifecycle【扩展包1已更新】
144 0
|
7月前
|
缓存 安全 Java
安卓现代化开发系列——从生命周期到Lifecycle【扩展包1已更新】-1
安卓现代化开发系列——从生命周期到Lifecycle【扩展包1已更新】
95 0