Android之fragment生命周期解析

上篇讲到了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:

这里写图片描述

回到桌面:

这里写图片描述

回到应用:

这里写图片描述

退出应用:

这里写图片描述

就简单介绍到这里,希望对大家有帮助~~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值