Android开发之Fragment

Fragment的生命周期和其父Activity的生命周期相关联。下面介绍Fragment的各个生命周期方法的作用以及每个方法中该做那些事情

package com.example.androidtest;

import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * @author syz
 * @date 2016-4-6
 */
public class MyFragment extends Fragment {

	/**
	 * 调用该方法时Fragment会被关联到父Activity上 该方法的作用,可以在该方法中获取父Activity的引用
	 */
	@Override
	public void onAttach(Activity activity) {
		super.onAttach(activity);
	}

	/**
	 * 该方法用来进行Fragment的初始创建 初始化Fragment
	 */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}

	/**
	 * 一旦Fragment被创建,要创建它自己的用户界面时调用该方法 创建,或者填充Fragment的UI,并返回它
	 * 如果这个Fragment没有UI,那么返回null
	 */
	@Override
	public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
		return super.onCreateView(inflater, container, savedInstanceState);
	}

	/**
	 * 一旦父Activity和Fragment的UI创建完成,则调用该方法。
	 * 完成Fragment的初始化工作,尤其是那些父Activity被初始化完成后或者Fragment的View被完全填充后才会做的事情
	 */
	@Override
	public void onActivityCreated(@Nullable Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
	}

	
	/**
	 * 在可见生命周期的开始时候被调用
	 * 应用所有需要的UI变化,现在Fragment是可见的
	 */
	@Override
	public void onStart() {
		super.onStart();
	}

	
	/**
	 * 在活动的生命周期开始时调用。
	 * 恢复所有被暂停的Fragment需要的UI更新,线程或者进程,但是在非活动状态它是暂停的
	 */
	@Override
	public void onResume() {
		super.onResume();
	}

	
	/**
	 * 在活动周期结束时调用。
	 * e.g.
	 * 当Activity不是活动的前台Activity时,需要暂停UI的更新、挂起线程或者暂停那些不需要更新的CPU的
	 * 集中处理。由于调用这个方法后,进程可能被终止,所以需要保存所有的编辑和状态改变信息
	 */
	@Override
	public void onPause() {
		super.onPause();
	}

	
	/**
	 * 在活动生命周期结束时,调用该方法来保存UI的状态变化
	 * 将UI的状态变化信息保存到outState中。这个Bundle会被传递到
	 * onCreate、onCreateView和onActivityCreated(如果父Activity被终止并且重新启动)方法中
	 */
	@Override
	public void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
	}

	
	/**
	 * 在可见生命周期结束时调用
	 * 当Fragment变为不可见时,暂停其余的UI更新、挂起线程或者暂停不再需要的处理
	 */
	@Override
	public void onStop() {
		super.onStop();
	}

	
	/**
	 * 当Fragment的View被分离时调用
	 * 在该方法中清除资源相关的view
	 */
	@Override
	public void onDestroyView() {
		super.onDestroyView();
	}

	/**
	 * 在整个生命周期结束时调用该方法
	 * 在该方法中清除所有资源,包括结束线程和关闭数据库连接等等
	 */
	@Override
	public void onDestroy() {
		super.onDestroy();
	}

	
	/**
	 * 当Fragment从它的父Activity上分离时,调用该方法
	 */
	@Override
	public void onDetach() {
		super.onDetach();
	}
}


:已创建的Fragment的生命周期存在于首次对onCreate的调用和最终对onDestroy的调用期间。因为对Activity的进程来说,在没有相应的onDestroy方法被终止是很常见的情况,所以Fragment的销毁不能依赖于触发onDestroy来完成。

与Activity一样,应使用onCreate方法来初始化Fragment。在Fragment的生命周期内创建的任何类作用于对象,最好保证它们只能被创建一次。

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