`
lj_gzy2014
  • 浏览: 18070 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Fragment的生命周期

 
阅读更多



 

                  自从android4.0之后,fragment就被广泛使用,我们知道Fragment与Activity有所不同,也有相似之处。Activity有生命周期,Fragment也有生命周期,了解了Fragmnet的生命周期,我们才能在控制程序时游刃有余。

           先来看看官方给出的fragment的生命周期图:

 

        从上面可以看出Fragment有11个状态,测试代码如下:

public class RightFragment extends  Fragment{
	public static final String TAG = "RightFragment";

	@Override
	public void onAttach(Activity activity) {
		super.onAttach(activity);
		Log.d(TAG, "onAttach");
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Log.d(TAG, "onCreate");
	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		Log.d(TAG, "onCreateView");
		View view = inflater.inflate(R.layout.right_fragment, container, false);
		return view;
	}

	@Override
	public void onActivityCreated(Bundle savedInstanceState) {
		super.onActivityCreated(savedInstanceState);
		Log.d(TAG, "onActivityCreated");
	}

	@Override
	public void onStart() {
		super.onStart();
		Log.d(TAG, "onStart");
	}

	@Override
	public void onResume() {
		super.onResume();
		Log.d(TAG, "onResume");
	}

	@Override
	public void onPause() {
		super.onPause();
		Log.d(TAG, "onPause");
	}

	@Override
	public void onStop() {
		super.onStop();
		Log.d(TAG, "onStop");
	}

	@Override
	public void onDestroyView() {
		super.onDestroyView();
		Log.d(TAG, "onDestroyView");
	}

	@Override
	public void onDestroy() {
		super.onDestroy();
		Log.d(TAG, "onDestroy");
	}

	@Override
	public void onDetach() {
		super.onDetach();
		Log.d(TAG, "onDetach");
	}


}

 运行程序,控制台输出:

跳到别的fragment时:


 

 

再次启动fragment时:(注意这里你不是按回退键)

      

Fragment之间是独立的,那么如何实现切换时前一个Fragment就会销毁,再次启动时,重新创建。那么如何实现类似activity的回退效果呢?

看下面的代码:

     Fragment1 fragment1 = new Fragment1();
     FragmentManager fragmentManager1 = getFragmentManager();
     FragmentTransaction transaction1 = fragmentManager1. beginTransaction();
     transaction1.replace(R.id.right_layout, fragment1);
     transaction1.addToBackStack(null);
     transaction1.commit();

实现回退效果,就需要添加 transaction1.addToBackStack(null);这一句,那么切换Fragment时,fragment不是被销毁,而是进入回退栈,当点击回退键时,栈顶fragment被销毁,之前的fragment替代栈顶fragment,显示在界面上。

   有了activity的生命周期作为基础,Fragment的生命周期就容易理解多了。接下来就可以愉快的和代码玩耍了!

  • 大小: 14.2 KB
  • 大小: 16.5 KB
  • 大小: 7.1 KB
分享到:
评论

相关推荐

    Fragment生命周期演示Demo

    这个"Fragment生命周期演示Demo"可以帮助开发者直观地看到每个方法的调用顺序,以便在实际项目中正确地管理Fragment的状态。通过实践和调试这个Demo,开发者可以加深对Fragment生命周期的理解,从而编写出更高效、更...

    Fragment生命周期讲解

    这是Fragment生命周期的起点,通常在这里进行初始化工作,例如获取Activity的引用。 2. **onCreate()**: 在这里,系统会为Fragment分配内存,并初始化基本成员变量。通常用于设置布局或创建数据对象,但不应在此处...

    Activity和Fragment生命周期

    6. **销毁(Destroyed)**:最后,`onDestroy()`标志着Fragment生命周期的结束。 了解这些生命周期状态后,开发者可以通过打印日志来跟踪Activity和Fragment的状态变化。例如,在每个生命周期方法中插入`Log.d()`...

    Fragment生命周期和动态切换

    Fragment生命周期的理解和熟练掌握对于高效、健壮的应用开发至关重要。在这个话题中,我们将深入探讨Fragment的生命周期以及如何实现动态切换。 Fragment的生命周期主要包括以下几个关键状态: 1. **创建过程**: ...

    android fragment生命周期测试

    在"android fragment生命周期测试"中,我们主要关注的是Fragment在不同情况下的状态变化及其对应的方法调用。 Fragment的生命周期包括以下几个关键阶段: 1. **添加/插入(Add/Attach)**:当Fragment通过`...

    工厂模式下add replace show hide fragment 还有Activity fragment生命周期

    2. **Fragment生命周期**:Fragment的生命周期嵌套在Activity中,包括onAttach(), onCreate(), onCreateView(), onViewCreated(), onStart(), onResume(), onPause(), onStop(), onDestroyView(), onDestroy(), ...

    android理解Fragment生命周期(字典)

    ### Android中的Fragment生命周期详解 在Android开发中,`Fragment`是一种可以嵌入到`Activity`中的用户界面片段,它可以被重用在多个活动中,并且能够独立管理自己的生命周期。理解`Fragment`的生命周期对于构建...

    Android fragment生命周期一张图解

    Android fragment生命周期一张图解,一张图完全解释fragment的生命周期.看一遍就会

    fragment生命周期

    这是Fragment生命周期中最后的状态,用户可以与Fragment交互。 7. 当用户离开Fragment或系统需要回收资源时,将触发一系列的“恢复”方法,如`onPause()`、`onStop()`、`onDestroyView()`、`onDestroy()`和`...

    Activity和Fragment生命周期研究

    在Android应用开发中,Activity和Fragment是两个至关重要的组件,它们构成了用户界面的主要部分,并各自拥有独特的生命周期。本文将深入探讨Activity和Fragment的生命周期,帮助开发者更好地理解和掌握这两个组件的...

    探究fragment生命周期

    在深入探究Fragment生命周期之前,我们需要先理解Activity的基础生命周期,因为Fragment的生命周期与之紧密相关。 Activity的生命周期包括:onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()...

    Android Fragment的生命周期详解

    Fragment是Android应用开发中的一个重要组件,它允许在同一个Activity中包含多个可独立操作的界面单元。...如果你希望深入了解Fragment,可以参考我博客上的详细讲解,那里会有更多关于Fragment生命周期的实例和技巧。

    fragment生命周期代码示例

    fragment 代码示例

    Activity和Fragment生命周期综合测试

    综上所述,这个"Activity和Fragment生命周期综合测试"DEMO涵盖了Android开发中的重要概念,包括Activity和Fragment的生命周期管理、ViewPager与Fragment的协同工作、以及页面滑动和选项卡切换的交互逻辑。...

    Fragment生命周期Demo

    Fragment生命周期Demo,详细使用可以查看: http://blog.csdn.net/u010049692/article/details/38926561 http://www.cnblogs.com/getherBlog/p/3945052.html

    Fragment生命周期

    Fragment生命周期的理解和掌握对于开发复杂的Android应用至关重要。以下是对Fragment生命周期的详细解释: 1. **Fragment的创建过程:** - **onAttach()**:当Fragment与其关联的Activity建立联系时调用。在这个...

    Fragment生命周期演示用例

    作者:【郭孝星】http://blog.csdn.net/allenwells 微博:【郭孝星的新浪微博】http://weibo.com/allenwells 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:...

    android fragment生命周期应用demo

    在这个过程中,我们需要正确管理Fragment的生命周期,确保在切换时合理地调用各个生命周期方法。 此外,`SwitchFragment`可能还会涉及Fragment之间的通信。Fragment可以通过`getActivity()`方法获取到所属的...

Global site tag (gtag.js) - Google Analytics