Fragment每个生命周期方法的意义、作用(注意红色的不是生命周期方法):
setUserVisibleHint():设置Fragment可见或者不可见时会调用此方法。在该方法里面可以通过调用getUserVisibleHint()获得Fragment的状态是可见还是不可见的,如果可见则进行懒加载操作。
onAttach():执行该方法时,Fragment与Activity已经完成绑定,该方法有一个Activity类型的参数,代表绑定的Activity,这时候你可以执行诸如mActivity = activity的操作。
onCreate():初始化Fragment。可通过参数savedInstanceState获取之前保存的值。
onCreateView():初始化Fragment的布局。加载布局和findViewById的操作通常在此函数内完成,但是不建议执行耗时的操作,比如读取数据库数据列表。
onActivityCreated():执行该方法时,与Fragment绑定的Activity的onCreate方法已经执行完成并返回,在该方法内可以进行与Activity交互的UI操作,所以在该方法之前Activity的onCreate方法并未执行完成,如果提前进行交互操作,会引发空指针异常。
onStart():执行该方法时,Fragment由不可见变为可见状态。
onResume():执行该方法时,Fragment处于活动状态,用户可与之交互。
onPause():执行该方法时,Fragment处于暂停状态,但依然可见,用户不能与之交互。
onSaveInstanceState():保存当前Fragment的状态。该方法会自动保存Fragment的状态,比如EditText键入的文本,即使Fragment被回收又重新创建,一样能恢复EditText之前键入的文本。
onStop():执行该方法时,Fragment完全不可见。
onDestroyView():销毁与Fragment有关的视图,但未与Activity解除绑定,依然可以通过onCreateView方法重新创建视图。通常在ViewPager+Fragment的方式下会调用此方法。
onDestroy():销毁Fragment。通常按Back键退出或者Fragment被回收时调用此方法。
onDetach():解除与Activity的绑定。在onDestroy方法之后调用。

Fragment生命周期执行流程(注意红色的不是生命周期方法):
Fragment创建:setUserVisibleHint()->onAttach()->onCreate()->onCreateView()->onActivityCreated()->onStart()->onResume();
Fragment变为不可见状态(锁屏、回到桌面、被Activity完全覆盖):onPause()->onSaveInstanceState()->onStop();
Fragment变为部分可见状态(打开Dialog样式的Activity):onPause()->onSaveInstanceState();
Fragment由不可见变为活动状态:onStart()->OnResume();
Fragment由部分可见变为活动状态:onResume();
退出应用:onPause()->onStop()->onDestroyView()->onDestroy()->onDetach()(注意退出不会调用onSaveInstanceState方法,因为是人为退出,没有必要再保存数据);
Fragment被回收又重新创建:被回收执行onPause()->onSaveInstanceState()->onStop()->onDestroyView()->onDestroy()->onDetach(),重新创建执行onAttach()->onCreate()->onCreateView()->onActivityCreated()->onStart()->onResume()->setUserVisibleHint();
横竖屏切换:与Fragment被回收又重新创建一样。

官方生命周期图

转载于:https://www.cnblogs.com/huihuizhang/p/7623958.html

Fragment 生命周期:相关推荐

  1. Lifecycle Activity和Fragment生命周期感知组件 LifecycleObserver MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. Fragment生命周期详解

    关于Fragment的生命周期,博主写过Activity与Fragment生命周期详解,基本上把Fragment的生命周期详细介绍过,但是那仅仅是创建一个Fragmnet时的生命周期,而事实上Frag ...

  3. 对Fragment生命周期的理解以及其与Activity的关联

    Fragment生命周期的四种状态 Fragment和Activity类似,也存在运行状态.暂停状态.停止状态和销毁状态. 运行状态:当前Fragment位于前台展示,可见,可获取焦点. 暂停状态:其 ...

  4. Fragment 生命周期的详情

    Fragment每个生命周期方法的意义.作用(注意红色的不是生命周期方法): setUserVisibleHint():设置Fragment可见或者不可见时会调用此方法.在该方法里面可以通过调用get ...

  5. Fragment生命周期与Fragment执行hide、show后的生命周期探讨

    一.Fragment 生命周期中的每个方法的意义与作用: 1.setUserVisibleHint()(此方法不属于生命周期方法):设置Fragment 用户可见或不可见时调用此方法,此方法在Frag ...

  6. android fragment 生命周期

    今天,简单讲讲fragment 的生命周期. 其实,对于fragment ,大家都很熟悉.我也经常使用,但是最近做一个功能时,在activity里面调用fragment 的函数,发现变量居然没有初始化 ...

  7. Android Fragment 生命周期及其正确使用(建议使用自定义View替换Fragment)

    使用Fragment 官方例子中显示: 例如:一个学生Fragment,需要传入studentId,进行http请求显示,那么setArguments后防止杀掉Fragment后,参数为0,显示不了数 ...

  8. Fragment生命周期及其使用

    Fragment是随着Android 3.0推出时携带的一部分,若是在1.6版本中使用,必须引入相应的支持包.Fragment最大的优点是你可以根据不同设备的屏幕大小创建动态的UI.Fragment有 ...

  9. 项目疑难杂症记录(五):fragment生命周期都回调了,却不见其页面展示

    继续记录我的疑难bug解决过程,这次要说的bug相比前几篇来说,更难定位,因为影响较大,直接导致不解决这个bug,根本就没有办法出版本,两三个同事定位了半天也没有结果,最后我自告奋勇的暂时放下手中的工 ...

最新文章

  1. 记录:自制的小说推荐程序(一)
  2. Jquery中获取select选中的文本与值
  3. office2007安装提示“Windows Installer 服务不能更新一个或多个受保护的Windows文件...
  4. 被捧上天的深度学习,遇到这些问题根本干不过简单模型
  5. 卸载linux 上Java的正确方式
  6. 大连海事大学计算机调剂,大连海事大学2017年考研调剂信息
  7. java和C++之单例类双重检查加锁
  8. 一分钟教你用Excel从统计局抓数据!
  9. 如何设置网件gs108e_Netgear 网件 EAX80 AX6000规格 无线扩展器 开箱拆解评测
  10. 在eclipse中运行正常的java项目放到tomcat中报错的解决办法
  11. Pentium II Pentium III架构/微架构/流水线 (5) - MMX
  12. 【registry】registry 0.9 源码 在 windows下运行
  13. 大数据相关端口号(hive hdfs spark)
  14. c语言中堆栈_C语言编程中的堆栈
  15. php独立环境的安装:apache php mysql
  16. AutoCAD2020线型比例修改
  17. win11任务栏(注册表修改/软件)完全透明-全网最详细教程
  18. 两年软件开发工作总结及未来展望
  19. Android当前任务管理器不显示应用进程
  20. 磁盘一把锁一个感叹号_Win10系统中如何解决磁盘图标上出现感叹号的情况

热门文章

  1. IDEA入门之web项目导入jar包
  2. Python 3.X 要使用urllib.request 来抓取网络资源。转
  3. ArrayList迭代修改抛出ConcurrentModificationException
  4. 对 /sbin/nologin 的理解
  5. Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现
  6. Sizzle系列之 选择元素
  7. 远方 vs How did I fall in love with you
  8. crosstool-ng 编译交叉工具链的常见错误及解决办法
  9. gpio_direction_output 与 gpio_set_value
  10. 电脑边充电边用好吗_平板电脑充电推车厂家哪家好?