前情提要(Previously)

本系列将使用 Android Studio 将《第一行代码》(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Android Studio 作为开发 IDE 的同学开路。
PS:其实我就是现学现卖,希望我能坚持刷完。

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

系列目录在此:

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

Fragment 的生命周期

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

fragment_lifecycle

与 Activity 的 关系

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

activity_fragment_lifecycle

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

  1. onAttach(),当 Fragment 和 Activity 建立关联时调用。
  2. onCreateView(),当为 Fragment 创建视图时调用。
  3. onActivityCreated(),与 Fragment 关联的 Activity 已经创建完毕时调用。
  4. onDEstroyView(),当与 Fragment 关联的视图被移除时调用。
  5. 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 中的日志,如下图

log1

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

log2

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

log3

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

log4

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

其它(Miscellaneous)

尽管我试图在本文中尽量完整的进行描述,但受限于篇幅和我的个人水平,本文难免有所遗漏,欢迎在评论中指出。
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!

关于作者(About Me)

addict

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

更多相关文章

  1. Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
  2. Android 系统概要 ——《第一行代码 Android》
  3. Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
  4. Android 核心已经从 Linux kernel 代码库中删除
  5. Android 简单的代码混淆
  6. android opengl开发示例代码
  7. 不使用布局文件,代码中自定义界面
  8. android代码格式化方法小结

随机推荐

  1. Android(安卓)PopupWindow显示在控件上方
  2. 解决scrollview中内容改变后自动滑动到底
  3. android实现两个页面跳转
  4. Android(安卓)Tthread 建立线程使用方法
  5. Android开发指南(38) —— Status Bar No
  6. Android定时刷新UI界面----Handler
  7. 百度贴吧客户端(Android)网络通信行为分
  8. Android(安卓)build/envsetup.sh分析
  9. Android(安卓)webkit对于网络传入的数据
  10. 最新基于adt-bundle-windows-x86的androi