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 ...
随机推荐
- windows 上执行python pywin32.exe
大家熟知的python脚本可以在linux系统上直接运行,因为linux上会安装python编译器 然而windows不会安装,如果想要别人直接运行你发布的python脚本,一种方法是在他的windo ...
- sql group by
group by实例 实例一 数据表: 姓名 科目 分数 张三 语文 80 张三 数学 98 张三 英语 65 李四 语文 70 李四 数学 80 李四 英语 90 期望查询结果: 姓名 语文 数学 ...
- nodejs Express 4.x req.body req.query req.params 三种获取参数的方法
第一种情况:http://localhost:3000/1,我们可以用req.params.(应该是跟路由有关,待) 第二种情况:http://localhost:3000/?id=1,用req.qu ...
- android WebView问题
1.加载本地js.css文件 今天碰到个问题,使用WebView加载html数据,本来没什么问题,loadUrl(),loadData(),都可以使用 但是如果需要引入本地的js.css文件就碰到问题 ...
- MyBatis学习总结(五)——实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- HTTP 权威指南
第一章 http概述 1.3.1 媒体类型 - http为每种web传输的数据格式加上MIME类型数据标签(multipurpose internet mail 1.4 事务 一个请求 + 一个响应 ...
- VS2013使用EF6连接MySql
前提:a.安装MySql的VS插件(版本请下载最新版) 我用的是:mysql-for-visualstudio-1.1.4 b.安装用于.net连接程序 mysql-connector-net-6. ...
- html弹出窗并用遮罩层的实例
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 《C++必知必会》学习笔记
转载:http://dsqiu.iteye.com/blog/1734640 条款一 数据抽象 抽象数据设计遵循步骤:(1)为类型取一个描述性的名字.(2)列出类型所能执行的操作,不要忘了初始化(构造 ...
- 2015年毕业生收到的offer和薪资透露
个人情况:全国排名70多的大学,非211,计算机专业硕士 收到的offer: 苏州同程旅游--6k/月 ,自己要了这么多,就给了这么多,没有规范.苏州蜗牛科技--8k/月 ,给了个口头offer,要去 ...