Android Fragment 生命周期

Fragment 生命周期

官方文档 developer.android.google.cn/guide/fragm...

核心回调

  • 11 个
java 复制代码
onAttach ------ onCreate ------ onCreateView ------ onViewCreated ------ onStart 可见 ------ onResume 有焦点 ------ onPause 无焦点 ------ onStop 不可见 ------ onDestroyView ------ onDestroy ------ onDetach
https://android-docs.cn/static/images/guide/fragments/fragment-view-lifecycle.png

经典场景

1 第一次启动 Fragment A

java 复制代码
//Fragment A
onAttach -> onCreate -> onCreateView -> onViewCreated -> onStart -> onResume

2 在 Fragment A 上启动 Fragment B(replace 替换的方式)

java 复制代码
//Fragment A(启用 addToBackStack 返回栈,不会继续执行 onDestroy 和 onDetach,实例保留在内存中)
onPause -> onStop -> onDestroyView
//Fragment B
onAttach -> onCreate -> onCreateView -> onViewCreated -> onStart -> onResume

3 从 Fragment B 返回到 Fragment A

java 复制代码
//Fragment B
onPause -> onStop -> onDestroyView -> onDestroy -> onDetach
//Fragment A
onCreateView -> onViewCreated -> onStart -> onResume

4 点击 HOME 键、来电

java 复制代码
//点击 Home 键,来电
onPause -> onStop
//回到 App
onStart -> onResume

5 锁屏与解锁

java 复制代码
//锁屏
onPause -> onStop
//解锁
onStart -> onResume

生命周期推荐做的事

java 复制代码
onAttach 与 Activity 首次关联时调用(仅执行一次),可以获取 Context
onCreate 当 Fragment 创建调用时(仅执行一次),可以初始化非视图相关的数据(比如初始化数据集合等)
onCreateView 创建视图时(会被多次调用),需要创建并返回 Fragment 的视图,避免耗时操作
onViewCreated 视图创建完成后(会被多次调用),初始化控件逻辑(比如设置点击事件等)
//
onStart 变为可见时,适合启动后台任务或注册监听器
onResume 有焦点可交互时,恢复 UI 交互(比如开始动画、视频的播放)
onPause 失去焦点时,保存临时数据,释放资源(比如停止动画、视频的播放)
onStop 完全不可见时,释放更多资源或取消注册监听器
//
onDestroyView 视图销毁时,释放视图相关资源
onDestroy 当 Fragment 被销毁时,释放所有资源
onDetach 与 Activity 解绑时,解除关联,清理全局引用

Activity 和 Fragment 生命周期的关系

  • 比如 Activity 的 onPause 会触发所有可见的 Fragment 走 onPause
  • Activity 开始创建带动 Fragment
  • Fragment 开始销毁带动 Activity
相关推荐
拥小抱8 小时前
Compose 知识点
android
文章永久免费只为良心8 小时前
Web应用安全与防护_第三章_日志文件包含_从一道 CTFshow 题目讲透「日志投毒型 LFI → RCE」:原理、时序陷阱与全变种攻防手册
android·网络安全·渗透测试·漏洞危害·漏洞描述·日志投毒·红队指南
AIsoft_86899 小时前
学术讲座录音如何整理?录音APP可行吗
android·iphone
Patrick在香港11 小时前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
海雅达手持终端PDA12 小时前
工业手持终端的“去手机化”演进:看海雅达如何以“同轴扫摄”终结工程妥协,重塑工业PDA新范式
android·物联网·智能手机·硬件工程·能源·制造·iot
booboosui13 小时前
删掉一个住在本机的 agent:8 处要清,顺序不能反
android
hcgeng14 小时前
Android获取崩溃日志
android
aqi0014 小时前
AI编程让鸿蒙开发电子书APP更加快捷
android·华为·harmonyos·鸿蒙·harmony
GY-9314 小时前
【Android】Android Studio 中的协程
android