当前位置: 首页 > news >正文

安卓Fragmnet的生命周期

Android Fragment生命周期概述
Fragment的生命周期包含以下几个主要状态:

  1. 创建阶段
    ● onAttach() - Fragment与Activity关联时调用
    ● onCreate() - Fragment被创建时调用
    ● onCreateView() - 创建Fragment的视图层次结构
    ● onViewCreated() - 视图创建完成后调用
    ● onActivityCreated() - Activity的onCreate()完成后调用

  2. 可见阶段
    ● onStart() - Fragment变为可见时调用
    ● onResume() - Fragment可以与用户交互时调用

  3. 暂停阶段
    ● onPause() - Fragment失去焦点时调用
    ● onStop() - Fragment不可见时调用

  4. 销毁阶段
    ● onDestroyView() - Fragment的视图被销毁时调用
    ● onDestroy() - Fragment被销毁时调用
    ● onDetach() - Fragment与Activity分离时调用

onAttach() → onCreate() → onCreateView() → onViewCreated() → onActivityCreated() →onStart() → onResume() → onPause() → onStop() → onDestroyView() → onDestroy() → onDetach()

生命周期回调方法详解

public class MyFragment extends Fragment {@Overridepublic void onAttach(Context context) {super.onAttach(context);// Fragment与Activity关联}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 初始化Fragment}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {// 创建并返回Fragment的视图return inflater.inflate(R.layout.fragment_layout, container, false);}@Overridepublic void onViewCreated(View view, Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);// 视图创建完成后的初始化工作}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);// Activity创建完成}@Overridepublic void onStart() {super.onStart();// Fragment变为可见}@Overridepublic void onResume() {super.onResume();// Fragment可以与用户交互}@Overridepublic void onPause() {super.onPause();// Fragment失去焦点}@Overridepublic void onStop() {super.onStop();// Fragment不可见}@Overridepublic void onDestroyView() {super.onDestroyView();// 视图被销毁}@Overridepublic void onDestroy() {super.onDestroy();// Fragment被销毁}@Overridepublic void onDetach() {super.onDetach();// Fragment与Activity分离}
}

Fragment生命周期中的资源释放时机

public class MyFragment extends Fragment {// 1. 在onDestroyView中释放View相关资源@Overridepublic void onDestroyView() {super.onDestroyView();// 释放View相关的资源// 取消网络请求// 停止动画// 释放监听器}// 2. 在onDestroy中释放Fragment级别的资源@Overridepublic void onDestroy() {super.onDestroy();// 释放Fragment级别的资源// 取消定时器// 释放数据库连接// 清理缓存}// 3. 在onDetach中释放Activity相关的引用@Overridepublic void onDetach() {super.onDetach();// 释放Activity相关的引用// 避免内存泄漏}
}
http://www.dtcms.com/a/328405.html

相关文章:

  • 【5】Transformers快速入门:Transformer 是啥?
  • 【接口自动化】-11-接口加密签名 全局设置封装
  • Android领域驱动设计与分层架构实践
  • TF-IDF:信息检索与文本挖掘的统计权重基石
  • 开源生态认证体系介绍
  • 当 GitHub 宕机时,我们如何协作?
  • 机器学习-集成学习(EnsembleLearning)
  • Linux 可执行程序核心知识笔记:ELF、加载、虚拟地址与动态库
  • MLOps(机器学习运维)LLMOps(大语言模型运维)介绍(通过自动化、标准化和协作优化模型的开发、部署、监控和维护流程)
  • Ubuntu与Rocky系统安装Java全指南
  • 【门诊进销存出入库管理系统】佳易王医疗器械零售进销存软件:门诊进销存怎么操作?系统实操教程 #医药系统进销存
  • 湖北手机基站数据分享
  • 当“超级高速“遇见“智能大脑“:5G-A×AI如何重塑万物智联时代
  • 双椒派E2000D开发板Linux环境配置指南
  • WireShark:非常好用的网络抓包工具
  • 【工具】通用文档转换器 推荐 Markdown 转为 Word 或者 Pdf格式 可以批量或者通过代码调用
  • 淘宝化妆品
  • Day52 Java面向对象07 类与对象总结
  • 第五章 树与二叉树
  • 腾讯云iOA:全面提升企业办公安全与效率的智能解决方案
  • 什么时候用WS(WebSocket),什么使用用SSE(Server-Sent Events)?
  • HTTP 协议详解:深入理解 Header 与 Body!
  • 【前端Vue】log-viewer组件的使用技巧
  • 有趣的 npm 库 · json-server
  • frp 实现内网穿透实战教程
  • CANopen Magic调试软件使用
  • 1 JQ6500语音播报模块详解(STM32)
  • 工作流调度(草稿)
  • Android Studio注释如何不从行首开始
  • Mysql GROUP_CONCAT函数数据超长导致截取问题记录