Android :fragment生命周期

来源:互联网 时间:1970-01-01

一、关于Fragmemt

1、安卓系统3.0介绍了Fragment,主要是为了支持更多的动态和灵活的用户界面设计,如平板电脑。Fragment允许组合和交换用户界面组件,而不需要更改视图层次结构。通过摆个Activity的布局划分成Fragment,可以再运行时修改Activity的外观,并保留在Activity堆栈中的更改。

2、Fragment表示Activity中的用户界面的行为或部分。可以将多个Fragment组合在一个Activity中,以构建多窗格用户界面,并在多个活动中重用Fragment。可以把Fragment当作一个Activity的模块部分,它有自己的生命周期,接受自己的输入事件,你可以在Activity正在运行时添加或删除。

3、一个Fragment必须始终嵌在一个Activity中,该片段的生命周期直接受宿主Activity的生命周期的影响。例如,当Activity暂停时,所有的Fragment都是这样,当Activity被破坏时,所有的Fragment都被破坏。然而,当一个Activity正在运行,可以独立操作每一个Fragment,如添加删除它们。

二、Fragment生命周期图解

1. 当一个fragment被创建的时候,它会经历以下状态.

onAttach() onCreate() onCreateView() onActivityCreated()

2. 当这个fragment对用户可见的时候,它会经历以下状态。

onStart() onResume()

3. 当这个fragment进入“后台模式”的时候,它会经历以下状态。

onPause() onStop()

4. 当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。

onPause() onStop() onDestroyView() onDestroy() onDetach() 三、创建Fragment

要创建一个Fragment,你必须创建一个Fragment的子类(或它的一个现有的子类)。

Fragment类的代码看起来很像一个Activity。它含有类似于Activity的回调方法,如oncreate(),onstart(),onpause(),和onstop()。

事实上,如果你将一个现有的安卓应用程序转换为使用Fragment,你可能会将代码从Activity的回调方法转移到你的Fragment的相应的回调方法中。

通常,你应该至少实现以下生命周期方法:

oncreate()

当创建该Fragment时,该系统调用该。在你的实现中,你应该对你想要保留的Fragment进行初始化,然后在暂停或停止的时候,然后重新开始。

oncreateview()

该系统调用这个时候,以绘制其用户界面的第一次。要为你的Fragment绘制一个用户界面,你必须从这个方法中返回一个视图,这是你的Fragment布局的根。如果Fragment不提供用户界面,您可以返回null。

onpause()

该系统将该方法称为用户离开该Fragment(虽然并不总是意味着该Fragment被销毁);通常您应该提交当前用户所做的任何更改(因为用户可能不会回来)。

实例代码如下:

public class PhoneFragment extends Fragment {@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment_phone, container, false);return view;}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);}@Overridepublic void onDestroy() {super.onDestroy();}}

相关阅读:
Top