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

在Android中fragment的生命周期

目录

Fragment 生命周期主要包括以下几个阶段:

详细Kotlin代码和中文注释

生命周期解释:

总结:


在Android中,Fragment 的生命周期类似于 Activity,但有其独特之处。以下是 Fragment 生命周期的主要方法,并通过Kotlin代码进行详细的讲解。

Fragment 生命周期主要包括以下几个阶段:

  1. onAttach()
  2. onCreate()
  3. onCreateView()
  4. onViewCreated()
  5. onStart()
  6. onResume()
  7. onPause()
  8. onStop()
  9. onDestroyView()
  10. onDestroy()
  11. onDetach()

详细Kotlin代码和中文注释

class MyFragment : Fragment() {// Fragment被附加到Activity时调用override fun onAttach(context: Context) {super.onAttach(context)Log.d("FragmentLifecycle", "onAttach: Fragment附加到Activity")// 此时可以访问Activity的上下文}// Fragment创建时调用(此时Fragment与UI无关)override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)Log.d("FragmentLifecycle", "onCreate: Fragment创建")// 用于初始化数据,例如恢复状态}// 创建Fragment的视图层次结构override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,savedInstanceState: Bundle?): View? {Log.d("FragmentLifecycle", "onCreateView: 创建视图")// 这里通常是返回Fragment的UI布局return inflater.inflate(R.layout.fragment_layout, container, false)}// Fragment视图创建完成后调用(视图被完全创建后)override fun onViewCreated(view: View, savedInstanceState: Bundle?) {super.onViewCreated(view, savedInstanceState)Log.d("FragmentLifecycle", "onViewCreated: 视图创建完成")// 可以在这里与视图进行交互(例如设置按钮监听器)}// Fragment可见时调用override fun onStart() {super.onStart()Log.d("FragmentLifecycle", "onStart: Fragment开始")// 这里可以处理一些准备显示的数据}// Fragment进入前台并开始与用户交互时调用override fun onResume() {super.onResume()Log.d("FragmentLifecycle", "onResume: Fragment可交互")// 用户可以看到Fragment并开始交互}// Fragment不可交互时调用(进入后台或被遮挡)override fun onPause() {super.onPause()Log.d("FragmentLifecycle", "onPause: Fragment暂停")// 用于保存数据或停止耗时操作}// Fragment不可见时调用override fun onStop() {super.onStop()Log.d("FragmentLifecycle", "onStop: Fragment停止")// 停止所有与UI相关的操作,例如动画}// Fragment视图被销毁时调用override fun onDestroyView() {super.onDestroyView()Log.d("FragmentLifecycle", "onDestroyView: 视图销毁")// 清理与视图相关的资源}// Fragment被销毁时调用override fun onDestroy() {super.onDestroy()Log.d("FragmentLifecycle", "onDestroy: Fragment销毁")// 最后进行资源清理,例如取消网络请求}// Fragment与Activity解绑时调用override fun onDetach() {super.onDetach()Log.d("FragmentLifecycle", "onDetach: Fragment与Activity解绑")// Fragment完全与Activity分离}
}

生命周期解释:

  1. onAttach(): 当 Fragment 关联到 Activity 上时调用。此时可以访问 Activity 的上下文。
  2. onCreate(): Fragment 被创建时调用,适合在此进行一些初始化操作,但此时还没有绑定 UI。
  3. onCreateView(): 系统调用此方法来绘制 Fragment 的 UI。通过 inflater 创建并返回 Fragment 的视图层次结构。
  4. onViewCreated(): 视图已经创建完成并绑定到 Fragment,可以在这里初始化 UI 元素。
  5. onStart(): Fragment 对用户可见,但还没有与用户交互。
  6. onResume(): Fragment 进入前台并且可以与用户交互时调用。
  7. onPause(): Fragment 进入后台时调用,通常用于保存数据或者停止动画等操作。
  8. onStop(): Fragment 完全不可见时调用,可以用于释放与界面无关的资源。
  9. onDestroyView(): Fragment 的视图被销毁时调用,意味着与 UI 相关的资源可以被清理。
  10. onDestroy(): Fragment 自身即将被销毁时调用,用于进行最终的清理工作。
  11. onDetach(): FragmentActivity 解绑时调用,释放所有的引用。

总结:

Fragment 的生命周期非常类似于 Activity,但是它有自己特有的生命周期方法(如 onCreateView()onDestroyView()),因为 Fragment 的视图可能会被销毁和重建。


http://www.mrgr.cn/news/29295.html

相关文章:

  • 在C++上实现反射用法
  • Python 获取PDF的各种页面信息(页数、页面尺寸、旋转角度、页面方向等)
  • Spring Cloud Eureka 服务注册与发现
  • Sam Altman:年底将有重磅更新,但不是GPT-5!
  • 数据结构中数据有序性/ 单调性 ——二分查找
  • Webpack 1.13.2 执行 shell 命令解决 打印时没有背景色和文字颜色的问题
  • (黑马点评)二、短信登录功能实现
  • 人工智能(AI)的影响下人类的生活样子
  • 听劝!千万别让外贸信息差害惨你!
  • 汉字排序(拼音排序)
  • DORIS - DORIS之BloomFilter索引
  • C++速通LeetCode简单第17题-爬楼梯(全网最简单)
  • 旺店通ERP集成用友U9(用友U9主供应链)
  • SC01芯片:触摸感应、人体感应、液位检测三合一的高性能解决方案
  • Anaconda 安装
  • leetcode438找到字符串种所有异位词
  • 高级java每日一道面试题-2024年9月15日-架构篇[分布式篇]-如何在分布式系统中实现事务?
  • Linux容器化管理——Docker常见命令总结
  • MySQL篇(窗口函数/公用表达式(CTE))(持续更新迭代)
  • 报名开启!第七届“强网”拟态防御国际精英挑战赛正式官宣
  • 用户体验不好的网站都有哪些特点?
  • spring boot admin集成,springboot2.x集成监控
  • JVM内存学习
  • 单指标RSRS沪深300择时:​年化13.7%,最大回撤-16​%(附代码与策略下载)
  • 「iOS」push与present
  • 智能生成ppt使用什么软件?这些AI应用不容错过