上次我们简单的使用了一下fragment(碎片),我们发现我们当时重写了一个叫做onCreateView的方法,这个方法是不是跟activity中的onCreate名字很像呢?其实fragment和activity的生命周期逻辑很像,只不过fragment的生命周期方法要比activity多一些,下面我们来看一下fragment的生命周期:
这是我自己写的 fragment的简单的生命周期过程,由于图片比较长,所以我就把他分成三个部分了。他总共有11个生命周期方法,执行顺序如上图所示。
我们用上次动态加载碎片的代码来模拟一下fragment的生命周期方法执行过程。
我们第一个按键用来加载第一个fragment,第二个将之前的移除,换成第二个fragment,
我们接下来点击第一个按钮,让他显示碎片1.
我们再点击第二个按钮。
我们再点击第一个按钮。
我们发现他没有执行onAttach和onCreate方法了。而且我们之前让第一个fragment消失,显示第二个fragment时候,他只是执行了onPause,onStop,onDestroyView。并没有执行onDestroy和onDetach方法,这是因为我在代码中加了一行很重要的代码。
这个就是我最上面那张图上面写的那个方法,如果我们执行了addToBackStack方法,我们会将这个碎片放入返回栈中,而不是立即销毁解除绑定,现在我们点击back键,
我们发现2又回来了。
我们再一次点击back。
我们看到这次2彻底的被销毁了,而且也和activity解除了绑定。
我们再点击back,大家应该都知道了,他会把我们第一次创建的fragment1页销毁,然后执行onDetach方法。