Fragment的生命周期

来源:互联网 发布:ip变换软件 编辑:程序博客网 时间:2024/05/01 15:36

学会了用Fragment创建小栗子后,来学习一下Fragment的生命周期。

主要的三个:onCreate()、onCreateView()、onPause()


首先:onCreateView()是用来创建一个布局的生命周期函数。

以上一篇为例,AnotherFragment中重写onCreate()、onCreateView()、onPause()

在其中添加输出语句

1、点击“呈现另一个Fragment”按钮后,

控制台输出:

onCreate

onCreateView

先执行创建,再执行创建界面


2、点后退键

控制台输出:

onPause

会停止。

但是其生命周期函数还会继续执行onDestory()、onDetach()最后这个Fragment会完全destroy


重写onDestroy,添加一个输出语句。执行上面的1.2.步骤。

控制台输出:

onCreate

onCreateView

onPause

onDestroy


会发现,执行了onDestroy,至此,这个fragment会完全销毁掉。


那么:

如果有第二个fragment把第一个fragment完全覆盖掉的话,第一个fragment会不会执行onDestroy呢?

在PlaceholderFragment中重写onPause()、onDestory(),并输出“a onPause”   "a onDestory"  执行上面的1。2步骤

控制台输出:

a onPause
onCreate
onCreateView

点击后退,控制台输出:

onPause
onDestroy


a只执行了a onPause,自始至终都没有执行a onDestory ,再重写a的onDestroyView,再次执行,

控制台输出:

a onPause

a onDestroyView

onCreate

onCreateView

点击后退,控制台输出:

onPause
onDestroy


意味着:a被替换掉之后,a的view已经被释放掉了,只有在回来之后,才会呈现到之前的那个view,会把这个view重新创建。

如果后退到桌面

控制台输出:

a onPause

a onDestroyView

a onDestroy


0 0
原创粉丝点击