服务器之家

服务器之家 > 正文

Android中Fragment与Activity的生命周期对比

时间:2021-06-18 15:15     来源/作者:高杰才_Android

fragment必须是依存于activity而存在的,因此activity的生命周期会直接影响到fragment的生命周期。官网这张图很好的说明了俩者的关系:

Android中Fragment与Activity的生命周期对比

可以看到fragment比activity多了几个额外的生命周期回调函数:

?
1
2
3
4
5
6
7
8
9
onattach(activity);  //当activity与fragment发生关联时调用
 
oncreateview(layoutinflater,viewgroup,bundle);  //创建该fragment的视图
 
onactivitycreate(bundle);  //当activity的oncreate();方法返回时调用
 
ondestoryview();  //与oncreateview相对应,当改fragment被移除时调用
 
ondetach();  //与onattach()相对应,当fragment与activity的关联被取消时调用

注意:除了oncreateview,其他的所有方法如果你重写了,必须调用父类对于该方法的实现。

场景演示 :

切换到该fragment

?
1
2
3
4
5
6
11-29 14:26:35.095: d/applistfragment(7649): onattach
11-29 14:26:35.095: d/applistfragment(7649): oncreate
11-29 14:26:35.095: d/applistfragment(7649): oncreateview
11-29 14:26:35.100: d/applistfragment(7649): onactivitycreated
11-29 14:26:35.120: d/applistfragment(7649): onstart
11-29 14:26:35.120: d/applistfragment(7649): onresume

屏幕灭掉:

?
1
2
3
11-29 14:27:35.185: d/applistfragment(7649): onpause
11-29 14:27:35.205: d/applistfragment(7649): onsaveinstancestate
11-29 14:27:35.205: d/applistfragment(7649): onstop

屏幕解锁

?
1
2
11-29 14:33:13.240: d/applistfragment(7649): onstart
11-29 14:33:13.275: d/applistfragment(7649): onresume

切换到其他fragment:

?
1
2
3
11-29 14:33:33.655: d/applistfragment(7649): onpause
11-29 14:33:33.655: d/applistfragment(7649): onstop
11-29 14:33:33.660: d/applistfragment(7649): ondestroyview

切换回本身的fragment:

?
1
2
3
4
11-29 14:33:55.820: d/applistfragment(7649): oncreateview
11-29 14:33:55.825: d/applistfragment(7649): onactivitycreated
11-29 14:33:55.825: d/applistfragment(7649): onstart
11-29 14:33:55.825: d/applistfragment(7649): onresume

回到桌面

?
1
2
3
11-29 14:34:26.590: d/applistfragment(7649): onpause
11-29 14:34:26.880: d/applistfragment(7649): onsaveinstancestate
11-29 14:34:26.880: d/applistfragment(7649): onstop

回到应用

?
1
2
11-29 14:36:51.940: d/applistfragment(7649): onstart
11-29 14:36:51.940: d/applistfragment(7649): onresume

退出应用

?
1
2
3
4
5
11-29 14:37:03.020: d/applistfragment(7649): onpause
11-29 14:37:03.155: d/applistfragment(7649): onstop
11-29 14:37:03.155: d/applistfragment(7649): ondestroyview
11-29 14:37:03.165: d/applistfragment(7649): ondestroy
11-29 14:37:03.165: d/applistfragment(7649): ondetach

比activity多了一些生命周期,完整和activity对接上,大家好好利用。

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021德云社封箱演出完整版 2021年德云社封箱演出在线看
2021德云社封箱演出完整版 2021年德云社封箱演出在线看 2021-03-15
返回顶部