fragement的行为和用法都和activity比较相似,它也有自己的生命周期,可以响应接收到的各种事件,值得注意的是一个fragement要总是放入到一个activity中,且activity的生命周期也会影响fragement
下面看一下fragement的生命周期官方文档给出的图:
使fragement能够呈现可见状态(能够与用户交互)的一些列核心生命周期方法有:
onAttach
当fragement和它的activity有关联的时候被调用
onCreate
整个系统创建fragement时调用,用来初始化fragement,相当于activity的onCreate
onCreateView
当第一次创建用户界面的回调方法,返回与fragement相关的视图
onActivityCreated
通知fragement它自己的activity已经完成
onViewStateRestored
告知fragement 其视图层次的所有保存的状态都已经恢复了
onStart
使fragement对用户可见(基于包含它的activity已经启动了)
onResume
使fragement与用户可进行交互(基于包含它的activity已经处于resume状态)
当一个fragement不再被使用的时候,它会经过一系列的反向回调方法:
onPause
fragement不再与用户进行交互,要么由于activity处于暂停态,要么由于在activity中一个fragement的操作正在被修改
onStop
fragement不再与用户可见,要么因为它的activity被停止,要么因为在activity中一个fragement的操作正在被修改
onDestroyView
允许fragement清理它的资源视图
onDestroy
被调用去做fragement状态的最终清理
onDetach
在fragement不再与其activity有关联之前立刻调用
在上述fragement的生命周期中,大多数程序都必须要去实现的是onCreate,onCreateview和onPause三个回调的方法
--------------------------------------------------------------------------------------------------------------------------------------------------------通常我们会继承系统内置的fragemtn的三个派生类:
DialogFragment
对话框式的Fragements。可以把fragmentdialog并入到到activity的返回栈中,使用户能再返回到这个对话框。
ListFragment
显示一个列表控件,就像ListActivity类,它提供了很多管理列表的方法,onListItemClick和setListAdapter等。
PreferenceFragment
显示一个Preference对象组成的列表,类似PreferenceActivity,主要用来创建设置界面。
来源:http://blog.youkuaiyun.com/eyu8874521/article/details/8153412