Android之Fragment的生命周期

一、Fragment的生命周期
在这里插入图片描述
二、Activity与Fragment的对比
在这里插入图片描述
三、回调方法

onAttach

当碎片和活动建立关联的时候调用

onCreateView

为碎片创建视图(加载布局)时调用

onActivityCreated

确保与碎片相关联的活动一定依据创建完毕的时候调用

onDestroyView

当与碎片关联的视图被移除的时候调用

onDetach

当碎片和活动解除关联的时候调用

四、首次打开界面
在这里插入图片描述
启动时一般都是先执行Activity的生命周期,再执行Fragment的。
除了Fragment的onStart()先于Activity的onStart()先执行这一个特例。
正常启动时每个Fragment的onAttach->onActivityCreated这四个生命周期一般都是一组一起执行的,在执行完这一组方法前不会去执行其它Fragment的生命周期方法

02-02 17:15:06.587 5232-5232/com.example.fragmenttest D/MainActivity: onCreate: 
02-02 17:15:06.594 5232-5232/com.example.fragmenttest D/RightFragment: onAttach: 
02-02 17:15:06.594 5232-5232/com.example.fragmenttest D/RightFragment: onCreate: 
02-02 17:15:06.594 5232-5232/com.example.fragmenttest D/RightFragment: onCreateView: 
02-02 17:15:06.595 5232-5232/com.example.fragmenttest D/RightFragment: onActivityCreated: 
02-02 17:15:06.595 5232-5232/com.example.fragmenttest D/RightFragment: onStart: 
02-02 17:15:06.596 5232-5232/com.example.fragmenttest D/MainActivity: onStart: 
02-02 17:15:06.596 5232-5232/com.example.fragmenttest D/MainActivity: onResume: 
02-02 17:15:06.597 5232-5232/com.example.fragmenttest D/RightFragment: onResume: 

五、Home键回到主界面时又返回时
在这里插入图片描述
回到主页面

02-02 17:18:26.232 5232-5232/com.example.fragmenttest D/RightFragment: onPause: 
02-02 17:18:26.232 5232-5232/com.example.fragmenttest D/MainActivity: onPause: 
02-02 17:18:27.019 5232-5232/com.example.fragmenttest D/RightFragment: onStop: 
02-02 17:18:27.019 5232-5232/com.example.fragmenttest D/MainActivity: onStop: 

返回

02-02 17:23:20.161 5576-5576/com.example.fragmenttest D/MainActivity: onRestart: 
02-02 17:23:20.172 5576-5576/com.example.fragmenttest D/RightFragment: onStart: 
02-02 17:23:20.172 5576-5576/com.example.fragmenttest D/MainActivity: onStart: 
02-02 17:23:20.173 5576-5576/com.example.fragmenttest D/MainActivity: onResume: 
02-02 17:23:20.173 5576-5576/com.example.fragmenttest D/RightFragment: onResume: 

六、碎片B替换了碎片A

1、使用replace加载fragment,增加addToBackStack(),原来Fragment不会销毁,但是会销毁视图和重新创建视图(回调onDestroyView和onCreateView)

①启动AnotherRightFragment

02-02 17:37:52.009 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onAttach: 
02-02 17:37:52.009 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onCreate: 
02-02 17:37:52.019 5839-5839/com.example.fragmenttest D/RightFragment: onPause: 
02-02 17:37:52.019 5839-5839/com.example.fragmenttest D/RightFragment: onStop: 
02-02 17:37:52.019 5839-5839/com.example.fragmenttest D/RightFragment: onDestroyView: 
02-02 17:37:52.021 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onCreateView: 
02-02 17:37:52.032 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onActivityCreated: 
02-02 17:37:52.032 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onStart: 
02-02 17:37:52.032 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onResume: 

②按Back键返回

2-02 17:39:32.940 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onPause: 
02-02 17:39:32.940 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onStop: 
02-02 17:39:32.940 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onDestroyView: 
02-02 17:39:32.947 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onDestroy: 
02-02 17:39:32.947 5839-5839/com.example.fragmenttest D/AnotherRightFragment: onDetach: 
02-02 17:39:32.947 5839-5839/com.example.fragmenttest D/RightFragment: onCreateView: 
02-02 17:39:32.948 5839-5839/com.example.fragmenttest D/RightFragment: onActivityCreated: 
02-02 17:39:32.948 5839-5839/com.example.fragmenttest D/RightFragment: onStart: 
02-02 17:39:32.949 5839-5839/com.example.fragmenttest D/RightFragment: onResume: 

2、使用replace加载fragment,不增加addToBackStack,fragment会销毁(回调onDestroy)

02-02 17:42:06.458 6025-6025/com.example.fragmenttest D/AnotherRightFragment: onAttach: 
02-02 17:42:06.459 6025-6025/com.example.fragmenttest D/AnotherRightFragment: onCreate: 
02-02 17:42:06.459 6025-6025/com.example.fragmenttest D/RightFragment: onPause: 
02-02 17:42:06.459 6025-6025/com.example.fragmenttest D/RightFragment: onStop: 
02-02 17:42:06.460 6025-6025/com.example.fragmenttest D/RightFragment: onDestroyView: 
02-02 17:42:06.464 6025-6025/com.example.fragmenttest D/RightFragment: onDestroy: 
02-02 17:42:06.464 6025-6025/com.example.fragmenttest D/RightFragment: onDetach: 
02-02 17:42:06.464 6025-6025/com.example.fragmenttest D/AnotherRightFragment: onCreateView: 
02-02 17:42:06.465 6025-6025/com.example.fragmenttest D/AnotherRightFragment: onActivityCreated: 
02-02 17:42:06.465 6025-6025/com.example.fragmenttest D/AnotherRightFragment: onStart: 
02-02 17:42:06.465 6025-6025/com.example.fragmenttest D/AnotherRightFragment: onResume: 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值