android studio生命周期代码,Android Studio 单刷《第一行代码》系列 06 —— Fragment 生命周期..._李静宜的博客-程序员秘密

技术标签: android studio生命周期代码  

前情提要(Previously)

本系列将使用 Android Studio 将《第一行代码》(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android Studio 作为开发 IDE 的同学开路。

PS:其实我就是现学现卖,希望我能坚持刷完。

在前面刚学习了Fragment,这次来了解一下她的生命周期。

系列目录在此:

Fragment 的生命周期

先来看一下 Fragment 的生命周期图解吧。

09158286846c022a9c7c400e4dca3428.png

与 Activity 的 关系

Fragment 必须是依存于 Activity 而存在的,因此 Activity 的生命周期会直接影响到 Fragment 的生命周期。Android 官网这张图很好的说明了两者生命周期的关系,如下

216143216d1c668237220f11eb3be485.png

跟 Activity 比较,多了下面几个回调函数:

onAttach(),当 Fragment 和 Activity 建立关联时调用。

onCreateView(),当为 Fragment 创建视图时调用。

onActivityCreated(),与 Fragment 关联的 Activity 已经创建完毕时调用。

onDEstroyView(),当与 Fragment 关联的视图被移除时调用。

onDetach(),当 Fragment 和 Activity 接触关联是调用。

体验 Fragment 的生命周期

打开上一篇 Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础 中的 FragmentTest 项目,修改 RightFragment 中的代码,重写每一个回调方法在里面加上输出日志,代码如下:

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");

}

}

运行,RightFragment 第一次加载,查看 Logcat 中的日志,如下图

375d708ca5453abc7f3a36bb93684f26.png

点击 LeftFragment 中的 Button,AnotherRightFragment 替换 RightFragment 出现,查看日志,如下图

b0c198d13e02992047e9f81a76eca635.png

按 Back 键,RightFragment 出现,查看日志,如下图

085a2253001df0655a070daedab3ce5e.png

再按 Back 键,程序退出,查看日志,如下图

b8d7d4df8f7b6efa29cd9aec135aa2b6.png

OK 了,我们对 Fragment 的生命周期已经了解的差不多,更深刻的理解以后用到的时候再说了。

其它(Miscellaneous)

尽管我试图在本文中尽量完整的进行描述,但受限于篇幅和我的个人水平,本文难免有所遗漏,欢迎在评论中指出。

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!

关于作者(About Me)

本文谢绝转载,如需转载需征得作者本人同意,谢谢。

Android Studio 单刷《第一行代码》系列目录

前言(Prologue) 本系列将使用 Android Studio 将(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...

Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat

前情提要(Previously) 本系列将使用 Android Studio 将(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

Android Studio 单刷《第一行代码》系列 01 —— 第一战 HelloWorld

前言(Prologue) 本系列将使用 Android Studio 将(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android ...

Android Studio 单刷《第一行代码》系列 07 —— Broadcast 广播

前情提要(Previously) 本系列将使用 Android Studio 将(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础

前情提要(Previously) 本系列将使用 Android Studio 将(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

Android Studio 单刷《第一行代码》系列 04 —— Activity 相关

前情提要(Previously) 本系列将使用 Android Studio 将(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

Android Studio 单刷《第一行代码》系列 03 —— Activity 基础

前情提要(Previously) 本系列将使用 Android Studio 将(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...

【java学习系列】 Android第一本书《第一行代码》

开始Java的学习,从Android,开始吧.开始阅读和调试demo例子. 下面是 的思维导图:

随机推荐

【10-25】intelliji ide 学习笔记

快捷键 /** alter+enter 导包,异常处理等提示 psvm 快速main函数 sout 快速sysout语句 fi 快速for循环 ctrl+d 重复一行 Ctrl+X 删除行 Ctrl+ ...

Adapter适配器

1.概念 *连接后端数据和前端显示的适配器接口 *数据和UI之间的重要连接   2. ArrayAdapter  ArrayAdapter构造器如下: ArrayAdapter(Context con ...

linux free 命令

命 令: free 功能说明:显示内存状态. 语 法: free [-bkmotV][-s ] 补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共 ...

CodeForces 321A

A. Ciel and Robot time limit per test 1 second memory limit per test 256 megabytes input standard in ...

给windows 7安装文件添加USB3.0驱动

给Air安装win7进入语言与区域选择之后,发现键盘触摸板都失灵.   原因:新款的 Macbook Air 2013 因为使用了 USB3.0 端口键盘和触摸板设备,所以在安装 Windows 7 ...

Shell符号展开

字符 展开 * 这个 “*” 字符意味着匹配文件名中的任意字符 shell 把 “*” 展开成了另外的东西 ,在 echo 命令被执行前. ~家目录 算术表达式展开 算术表达式展开使用这种格式: $( ...

testlink 下载地址

testlink 下载地址 https://sourceforge.net/projects/testlink/files/TestLink%201.9/

centOS7 mini配置linux服务器(三) 配置防火墙以及IPtables切换

一.firewall介绍 CentOS 7中防火墙是一个非常的强大的功能,在CentOS 6.5中在iptables防火墙中进行了升级了. 1.官方介绍 The dynamic firewall da ...

dotnet core使用开源组件FastHttpApi进行web应用开发(转)

FastHttpApi相对于asp.net mvc来说有着更轻量和性能上的优势,性能上面就不在这里介绍了(具体可查看 https://github.com/IKende/FastHttpApi). ...

python常见排序算法解析

python——常见排序算法解析   算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法 ...

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42356073/article/details/117528639

智能推荐

LeetCode 5198. 丑数 III(Java)容斥原理和二分查找_leetcode 丑数3_wowpH的博客-程序员秘密

第 155 场周赛,题解,题目链接,题目,示例,难度中等,提示,时间复杂度,空间复杂度,丑数,容斥原理,二分查找,整除,最大公约数,最小公倍数,gcd,lcm。

c++ CreateThread_科学的发展-只不过是读大自然写的代码的博客-程序员秘密

1.基本使用方式1.1 DWORD WINAPI 函数名 (LPVOID lpParam); //标准格式DWORD WINAPI 函数名 (LPVOID lpParam){ return 0;}CreateThread(NULL, 0, 函数名, 0, 0, 0);1.2 使用void 函数名()此种线程声明方式时,lpStartAddress需要加入LPTHREAD_START_ROUTINE转换void 函数名(){ return;}CreateThre

android数据库操作(二)---增删改查_android完成数据的增删改查_程序媛coco的博客-程序员秘密

由上一篇介绍了数据库的基本知识,这篇就详细演示一个数据库增删改查的Demo:一、创建一个数据库表(继承使用SQLiteOpenHelper )。/** * 数据库帮助类实现步骤: * 1、自定义一个类继承SQLiteOpenHelper * 2、重写里面的构造方法,确定表的名称 * 3、重写onCreate的方法 * @author coco */public c

帧大小超过交换机mtu_网卡最大传输单位MTU和巨型帧(Jumbo frame)设置_weixin_39688019的博客-程序员秘密

1500bytes 不包含18字节(14+4CRC)2. 产生原因:提高网络的吞吐率和效率(小的数据报文封装二层信息时,效率不高),同时减少设备CPU的负担(对于小的报文,CPU花费大量的时间来分片和重组报文)3. 定义:Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bytes大的frames1) Jumbo frame的大小是每个设备厂...

TrackingNet阅读笔记:A Large-Scale Dataset and Benchmark for Object Tracking in the Wild_Fan72的博客-程序员秘密

最近论文精读的少了,就不太在博客发表TrackingNet是发表在ECCV2018上的一篇目标跟踪方面的论文,由题目可以看出来,提出了一个大规模的目标跟踪数据集和一个评测的Benchmark,数据集的内容针对的是in the Wild现在数据集已经开放下载,详情可以看官方网站https://tracking-net.org/,未来我可能也会跟进这个数据集的使用。总结下来,这篇文章有三方面内容...

2020-10-14 //严蔚敏《数据结构》 //最小生成树--Prim算法_prvyx的博客-程序员秘密

//严蔚敏《数据结构》//最小生成树--Prim算法//自学中,加油!#include<iostream>#include<string>using namespace std;const int MaxVertexnum=20;const int Infinity=INT_MAX;#define InfoType string#define VRType double#define VertexType stringtypedef enum{DG,DN,UDG

随便推点

谨以此篇献给即将奔三十的人们_carolynni的博客-程序员秘密

 谨以此篇献给即将奔三十的人们 二十岁和三十岁三十岁的女人会怎么样? 二十岁的时候三十岁的时候我穿着一条背心式牛仔裙在校园里走来走去,一说话就脸红。我穿着名牌套装,坐在办公桌前,满脸冷酷地对下属说:"这么愚蠢的问题你也敢问?也不先打个草稿”从图书馆借的是莎士比亚全集、一个青年艺术家的自画像和尤里西斯。

HDU - 6739 2019CCPC秦皇岛赛区 I. Invoker(DP+思维)_是奥利奥阿的博客-程序员秘密

问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6739问题简述:在 dota2 中有一个叫做祈求者(Invoker)的英雄,在游戏中他有三个基础技能:冰(Quas),雷(Wex),火(Exort),每施展一个技能就可以获得相应属性的一个法球(element)。但是祈求者同时最多只能有三个法球,即如果他在有三个法球的状态下又使用了某个法球技能,...

a标签_a标签不给文字_jwz934738949的博客-程序员秘密

a标签就是超链接,把地址链接到这里它的基本形式有<a href="xxxxxxxx">你要显示的内容</a>a标签不仅仅可以把文字作为超链接,还可以把图片作为超链接<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&

springboot+mybatis集成自定义缓存ehcache用法笔记_IT技术分享社区的博客-程序员秘密

今天小编给大家整理了springboot+mybatis集成自定义缓存ehcache用法笔记,希望对大家能有所办帮助!一、ehcache介绍EhCach...

树莓派3装ubuntu mate 16 开机自动登陆_lovedarling的博客-程序员秘密

修改/etc/lightdm 下的lightdm.conf文件如果没有则自己创建一个 内容为[SeatDefaults]autologin-user=name下面的这个实验时自己树莓派3装了ubuntu mate后使用的方法[SeatDefaults]autologin-user=robot

推荐文章

热门文章

相关标签