Fragment的生命周期

同Activity的生命周期一样,Fragment也同样拥有自己的生命周期,而且Fragment的生命周期与Activity的生命周期很相似。


Fragment的生命周期_第1张图片
Paste_Image.png

onAttach():onAttach()在fragment与Activity关联之后调用


Fragment的生命周期_第2张图片
Paste_Image.png

onCreate():fragment初次创建时调用。尽管它看起来像是Activity的OnCreate()函数,但这个只是用来创建Fragment的。此时的Activity还没有创建完成,因为我们的Fragment也是Activity创建的一部分。所以如果你想在这里使用Activity中的一些资源,将会获取不到。比如:获取同一个Activity中其它Frament的控件实例。,如果想要获得Activity相关联的资源,必须在onActivityCreated中获取。


Fragment的生命周期_第3张图片
Paste_Image.png

onCreateView:在这个fragment构造它的用户接口视图(即布局)时调用。在这里期望返回此Fragment的一个视图层次结构。使用LayoutInflater的inflater()方法来构造视图


Fragment的生命周期_第4张图片
Paste_Image.png

onActivityCreated:在Activity的OnCreate()结束后,会调用此方法。所以到这里的时候,Activity已经创建完成!在这个函数中才可以使用Activity的所有资源。


Paste_Image.png

onStart:当到OnStart()时,Fragment对用户就是可见的了。但用户还未开始与Fragment交互。在生命周期中也可以看到Fragment的OnStart()过程与Activity的OnStart()过程是绑定的。意义即是一样的。以前你写在Activity的OnStart()中来处理的代码,用Fragment来实现时,依然可以放在OnStart()中来处理。


Fragment的生命周期_第5张图片
Paste_Image.png

onResume:当这个fragment对用户可见并且正在运行时调用。这是Fragment与用户交互之前的最后一个回调。从生命周期对比中,可以看到,Fragment的OnResume与Activity的OnResume是相互绑定的,意义是一样的。它依赖于包含它的activity的Activity.onResume。当OnResume()结束后,就可以正式与用户交互了。


Fragment的生命周期_第6张图片
Paste_Image.png

onPause:此回调与Activity的OnPause()相绑定,与Activity的OnPause()意义一样。


Fragment的生命周期_第7张图片
Paste_Image.png

onStop:这个回调与Activity的OnStop()相绑定,意义一样。已停止的Fragment可以直接返回到OnStart()回调,然后调用OnResume()。


Fragment的生命周期_第8张图片
Paste_Image.png

onDestroyView:如果Fragment即将被结束或保存,那么撤销的下一个回调将是onDestoryView()。会将在onCreateView创建的视图与这个fragment分离。下次这个fragment若要显示,那么将会创建新视图。这会在onStop之后和onDestroy之前调用。


Fragment的生命周期_第9张图片
Paste_Image.png

onDestroy:当这个fragment不再使用时调用。需要注意的是,它即使经过了onDestroy()阶段,但仍然能从Activity中找到,因为它还没有Detach。


Paste_Image.png

onDetach:Fragment生命周期中最后一个回调是onDetach()。调用它以后,Fragment就不再与Activity相绑定,它也不再拥有视图层次结构,它的所有资源都将被释放。


Fragment的生命周期_第10张图片
Paste_Image.png

Fragment的优点

Fragment可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。
Fragment可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。
Fragment是一个独立的模块,紧紧地与activity绑定在一起。可以运行中动态地移除、加入、交换等。
Fragment提供一个新的方式让你在不同的安卓设备上统一你的UI。
Fragment 解决Activity间的切换不流畅,轻量切换。
Fragment 替代TabActivity做导航,性能更好。
Fragment 在4.2.版本中新增嵌套fragmeng使用方法,能够生成更好的界面效果。

学术交流,相互学习,共同进步!

微信号:romance-l

博客地址:http://my.csdn.net/?ref=toolbar

你可能感兴趣的:(Fragment的生命周期)