当前位置:操作系统 > 安卓/Android >>

android开发中fragment的生命周期

当我们在一个viewpager放一个fragment,当切换viewpager当中的viewpager时,fragment的打印输出如下:
 
1.D:\Users\zhongxw>adb logcat -s debug
--------- beginning of /dev/log/main
--------- beginning of /dev/log/system
V/debug   (17567): onAttach
V/debug   (17567): onCreate
V/debug   (17567): oncreateview
V/debug   (17567): onActivityCreated
V/debug   (17567): onResume
 
切换到别fragment的时打印出:
V/debug   (17567): onPause
V/debug   (17567): onDestroyView
 
注意执行了onDestroyView进行了销毁,而下面的onCreateView也是进行对应的
 
重新愀复时执行:
V/debug   (17567): oncreateview
V/debug   (17567): onActivityCreated
V/debug   (17567): onResume
 
再退出:
V/debug   (17567): onPause
V/debug   (17567): onDestroyView
V/debug   (17567): onDestroy
V/debug   (17567): onDetach
 
 
2.如果是打开退出两种状态的切换:
打开:
V/debug   (17567): onCreate
V/debug   (17567): oncreateview
V/debug   (17567): onActivityCreated
V/debug   (17567): onResume
 
退出是:
V/debug   (17567): onPause
V/debug   (17567): onDestroyView
V/debug   (17567): onDestroy
V/debug   (17567): onDetach
 
3.**我们看到都没有执行onPause函数,onPause()多长发生如果点击fragment中的内容时或者这时弹出别的app或者说是activity,跳转到一个新界面,把当前的fragment盖住了,生命周期通常是这样的:
 
D:\Users\zhongxw>adb logcat -s debug
--------- beginning of /dev/log/system
--------- beginning of /dev/log/main
V/debug   (17567): onPause
V/debug   (17567): onResume
 
跳进入是onPause(),恢复时是onResume()
 
 
4.如果我们fragment已经展示了,我们按home键进入后台,再进入前台,则执行:
A。进入后台
V/debug   (22269): onPause
 
B,恢复前台
 
V/debug   (22269): onResume
我们看到这里前没有执行onDestroy(),没有销毁,所以也没有执行onCreateView()进行重绘。跟前面3中所描述的切换到别的activity中是一样的效果。
 
 
这里我没有打印onStart()跟onStop()函数,,因为onResume以前一定会执行onStart(),在onPause后也会执行onStop()这个函数
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,