fragment的生命周期及其各个周期方法的作用
先上生命周期图:
Fragment的生命周期图:

与Activity的生命周期对比图:

由于Fragment是嵌在Activity中使用的,故其生命周期也是依赖于Activity的周期的,或者说Fragment的生命周期小于Activity的生命周期。
从上图的生命周期中也可以看出Fragment主要运行在Activity的onResume()与onPause()之间。一旦activity进入resumed状态(也就是running状态),就可以自由地添加和删除fragment了。因此,只有当activity在resumed状态时,fragment的生命周期才能独立的运转,其它时候是依赖于activity的生命周期变化的。
下面来看看每一个生命周期的作用:
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup; public class MyFragment2 extends Fragment{ @Override //fragment和activity建立关联时调用
public void onAttach(Activity activity) {
super.onAttach(activity);
} //当创建 fragment 时系统调用此方法。在其中初始化 fragment 的基础组件。可参考 activity 的说明。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
} @Override
//当fragment加载布局文件时调用。 即fragment要画自己的界面时调用(在真正显示之前)此方法。
//这个方法返回 frament 的 layout 的根控件。如果这个 fragment 不提供界面,那它应返回 null。
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragface2,container,false);
return view;
} @Override //当activity的oncreate执行后调用
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
} @Override//与Activity的一样,此时可以看到Fragment的界面,但还不能交互
public void onStart() {
super.onStart();
} @Override//与用户交互
public void onResume() {
super.onResume();
} @Override//可见不可交互
public void onPause() {
super.onPause();
} @Override//不可见,fragment进入后台模式
public void onStop() {
super.onPause();
} @Override// 当fragment中的视图被移除的时候,调用这个方法。
public void onDestroyView() {
super.onDestroyView();
} @Override//Fragment被销毁的时候
public void onDestroy() {
super.onDestroy(); } @Override //解除与Activity关联时调用
public void onDetach() {
super.onDetach();
} @Override
public void onStop() { Log.e("robin debug", "fragment onStop...2");
super.onStop();
} }
fragment的基本使用步骤详看 http://www.cnblogs.com/huaqing-wkc/p/4926288.html
fragment的生命周期及其各个周期方法的作用的更多相关文章
- Fragment 的生命周期及使用方法详解
Fragment 的基础知识介绍 1.1 概述 1.1.1 特性 By hebang32624 Fragment 是 activity 的界面中的一部分或一种行为.可以把多个 Fragment 组合到 ...
- Fragment的生命周期
Fragment的生命周期: 1. onAttach():Fragment对象跟Activity关联时 2. onCreate():Fragment对象的初始创建时 3. onCreateView() ...
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的,在此不表: Fragment从出现到广泛运用也有一段时间了,其标准生命周期也仅比Activity ...
- Android系列之Fragment(二)----Fragment的生命周期和返回栈
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- Fragment 整个生命周期
时间 2014-05-21 17:09:53 CSDN博客原文 http://blog.csdn.net/linfeng24/article/details/26491407 Fragment 生 ...
- Fragment的生命周期和Activity之间的通信以及使用
Fragment通俗来讲就是碎片,不能单独存在,意思就是说必须依附于Activity,一般来说有两种方式把Fragment加到Activity,分为静态,动态. 静态即为右键单击,建立一个Fragme ...
- Android学习笔记(六)Fragment的生命周期
在上一篇博文中对Fragment做了简单的介绍,现在再来探讨一下Fragment的生命周期. 一.Fragment的几种状态: 与Activity类似,Fragment也有一下几种状态: · 活动状态 ...
- Fragment的生命周期&同一Activity下不同Fragment之间的通信
Android开发:碎片Fragment完全解析(2) Fragment的生命周期 和Activity一样,Fragment也有自己的生命周期,理解Fragment的生命周期非常重要,我们通过代码的方 ...
- Activity与Fragment的生命周期详解
在安卓中Activity与Fragment是非常相似的两个类,它们各自都拥有自己的生命周期,且都可以用来显示布局文件中的视图.其中Activity是通过setContenView()显示视图,而Fra ...
随机推荐
- power
http://software.intel.com/en-us/articles/power-efficiency-analysis-and-sw-development-recommendation ...
- java之注解Annotation
元注解:负责注解其他注解,java5提供的4个meta-annotation元注解 @Target 规定注解修饰的范围 ElementType.CONSTRUCTOR:构造器声明 ElementTyp ...
- CSS 块状元素和内联元素的详解
我们先来分析一下块级元素.内联级元素的定义和解析: 块元素(block element)一般是其他元素的容器元素,块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签'P&q ...
- spring 获取 bean
不通过注解或者是配置文件怎么获取spring中定义的bean呢?有几个方法: 1.实现ApplicationContextAware <bean class="com.xxx.Spri ...
- 移动前端头部标签(HTML5 meta)
在移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析html代码 <!DOCTYPE html> 使用 HTML5 doctype,不区分大小写 <he ...
- java GZIP压缩和解压
最近碰到了一个按GZIP解压指定的输入流数据,备份下 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream ...
- 第八十七天请假 PHP smarty模板配置以及简单的调用方式
smarty模板的配置文件 <?php define("ROOT",str_replace("\\","/",dirname(__FI ...
- jqeury 合并单元格
function mergeCells() { var tbodyTlth = $("#datatable_ajax1 tbody").find("tr").l ...
- Ubuntu修改hosts方法
1.修改hostssudo gedit /etc/hosts如果不喜欢使用gedit命令,而且当前帐户为非root帐户,那么可把/etc/hosts复制到桌面上,然后手动编辑后保存,再使用命令copy ...
- centos安装mysql5.6的正确姿态
1.准备工作 a)卸载centos默认软件 yum remove mariadb-libs-5.5.35-3.el7.x86_64 b)安装依赖包 yum install -y perl-Module ...