前情提要(Previously)

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

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

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

系列目录在此:

Fragment 的生命周期

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

android studio 支付功能 android studio的fragment_android studio生命周期代码

与 Activity 的 关系

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

android studio 支付功能 android studio的fragment_android studio 支付功能_02

跟 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 中的日志,如下图

android studio 支付功能 android studio的fragment_Android_03

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

android studio 支付功能 android studio的fragment_Android_04

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

android studio 支付功能 android studio的fragment_Android_05

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

android studio 支付功能 android studio的fragment_android studio 支付功能_06

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 下载地址


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 本篇主要实现九(八)大排序算法 ...