当我们在一个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()这个函数