上篇讲到了Fragment的基础应用,现在给大家演示一下Fragment的生命周期是什么样子的。关于Fragemnt的基础应用,请见http://blog.csdn.net/jiapeng2b/article/details/46919859。
一、首先,我们先看一下Fragment的生命周期
跟Activity生命周期的对比
Activity直接影响它所包含的fragment的生命周期,所以对activity的某个生命周期方法的调用也会产生对fragment相同方法的调用。例如:当activity的onPause()方法被调用时,它所包含的所有的fragment们的onPause()方法都会被调用。
Fragment比activity还要多出几个生命周期回调方法,这些额外的方法是为了与activity的交互而设立,如下:
onAttach()
当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。
onCreateView()
当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。
onActivityCreated()
当activity的onCreated()方法返回后调用此方法。
onDestroyView()
当fragment的layout被销毁时被调用。
onDetach()
当fragment被从activity中删掉时被调用。
一旦activity进入resumed状态(也就是running状态),你就可以自由地添加和删除fragment了。因此,只有当activity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的
二、测试用的代码(这里就简单实现一下,打印出来)
package com.jp.fragment;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.framentdemo.R;
public class Fragmentdemo extends Fragment {
/**
* 当fragment被加入到activity时调用(在这个方法中可以获得所在的activity)。
*/
public void onAttach(Activity activity) {
super.onAttach(activity);
System.out.println("Fragment————onAttach()");
}
/**
* 当activity要得到fragment的layout时,调用此方法,fragment在其中创建自己的layout(界面)。
*/
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
System.out.println("Fragment————()");
return inflater.inflate(R.layout.title_frament, container, false);
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("Fragment————onCreate()");
}
/**
* 当activity的onCreated()方法返回后调用此方法。
*/
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
System.out.println("Fragment————onActivityCreated()");
}
/**
*
*/
public void onStart() {
super.onStart();
System.out.println("Fragment————onStart()");
}
/**
*
*/
public void onResume() {
super.onResume();
System.out.println("Fragment————onResume()");
}
public void onPause() {
super.onPause();
System.out.println("Fragment————onPause()");
}
public void onStop() {
super.onStop();
System.out.println("Fragment————onStop()");
}
/**
* 当fragment的layout被销毁时被调用。
*/
public void onDestroyView() {
super.onDestroyView();
System.out.println("Fragment————onDestroyView()");
}
public void onDestroy() {
super.onDestroy();
System.out.println("Fragment————onDestroy()");
}
/**
* 当fragment被从activity中删掉时被调用。
*/
public void onDetach() {
super.onDetach();
System.out.println("Fragment————onDetach()");
}
}
三、场景演示
场景演示 : 切换到该Fragment
切换到其他Fragment:
切换回本身的Fragment:
回到桌面:
回到应用:
退出应用:
就简单介绍到这里,希望对大家有帮助~~
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/jiapeng2b/article/details/46972039