您的位置:首页 > 移动开发 > Android开发

Fragment的生命周期

2015-08-04 16:41 441 查看
学会了用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息