Android 程式开发:(三)碎片简介 —— 3.2 Fragment的生命周期
来源:互联网 发布:淘宝耳饰 知乎 编辑:程序博客网 时间:2024/05/16 04:42
就像activities一样,fragments也有它们自己的生命周期。理解fragments的生命周期,可以使你在它们被销毁的时候保存它们的实例,这样在它们重新被创建的时候,就能恢复它们之前的状态。下面的例子测试了fragments的不同状态。
1. 创建一个Fragment的子类:Fragment1.java。
- public class Fragment1 extends Fragment {
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- Log.d("Fragment 1", "onCreateView");
- // ---Inflate the layout for this fragment---
- return inflater.inflate(R.layout.fragment1, container, false);
- }
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
- Log.d("Fragment 1", "onAttach");
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Log.d("Fragment 1", "onCreate");
- }
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- Log.d("Fragment 1", "onActivityCreated");
- }
- @Override
- public void onStart() {
- super.onStart();
- Log.d("Fragment 1", "onStart");
- }
- @Override
- public void onResume() {
- super.onResume();
- Log.d("Fragment 1", "onResume");
- }
- @Override
- public void onPause() {
- super.onPause();
- Log.d("Fragment 1", "onPause");
- }
- @Override
- public void onStop() {
- super.onStop();
- Log.d("Fragment 1", "onStop");
- }
- @Override
- public void onDestroyView() {
- super.onDestroyView();
- Log.d("Fragment 1", "onDestroyView");
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- Log.d("Fragment 1", "onDestroy");
- }
- @Override
- public void onDetach() {
- super.onDetach();
- Log.d("Fragment 1", "onDetach");
- }
- }
3. 按F11调试。
4. 当应用被加载的时候,LogCat窗口中有如下显示。
- 03-27 12:23:32.255: D/Fragment 1(704): onAttach
- 03-27 12:23:32.255: D/Fragment 1(704): onCreate
- 03-27 12:23:32.255: D/Fragment 1(704): onCreateView
- 03-27 12:23:32.274: D/Fragment 1(704): onActivityCreated
- 03-27 12:23:32.274: D/Fragment 1(704): onStart
- 03-27 12:23:32.286: D/Fragment 1(704): onResume
- 03-27 12:25:23.174: D/Fragment 1(704): onPause
- 03-27 12:25:25.174: D/Fragment 1(704): onStop
- 03-27 12:26:21.505: D/Fragment 1(704): onStart
- 03-27 12:26:21.505: D/Fragment 1(704): onResume
- 03-27 12:27:54.384: D/Fragment 1(704): onPause
- 03-27 12:27:55.324: D/Fragment 1(704): onStop
- 03-27 12:27:55.324: D/Fragment 1(704): onDestroyView
- 03-27 12:27:55.324: D/Fragment 1(704): onDestroy
- 03-27 12:27:55.324: D/Fragment 1(704): onDetach
分析
1. 当一个fragment被创建的时候,它会经历以下状态.。
- onAttach()
- onCreate()
- onCreateView()
- onActivityCreated()
2. 当这个fragment对用户可见的时候,它会经历以下状态。
- onStart()
- onResume()
3. 当这个fragment进入“后台模式”的时候,它会经历以下状态。
- onPause()
- onStop()
4. 当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。
- onPause()
- onStop()
- onDestroyView()
- onDestroy() // 本来漏掉类这个回调,感谢xiangxue336提出。
- onDetach()
5. 就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。
- onCreate()
- onCreateView()
- onActivityCreated()
6. fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。
- onAttached() —— 当fragment和activity关联之后,调用这个方法。
- onCreateView() —— 创建fragment中的视图的时候,调用这个方法。
- onActivityCreated() —— 当activity的onCreate()方法被返回之后,调用这个方法。
- onDestroyView() —— 当fragment中的视图被移除的时候,调用这个方法。
- onDetach() —— 当fragment和activity分离的时候,调用这个方法。
- Android 程式开发:(三)碎片简介 —— 3.2 Fragment的生命周期
- Android 程式开发:(三)碎片简介 —— 3.2 Fragment的生命周期
- Android 程式开发:(三)初识Fragment —— 3.3生命周期
- Android 程式开发:(三)初识Fragment —— 3.1简介
- Android 程式开发:(三)初识Fragment —— 3.4fragments实例之间的通信
- Android 程式开发:(三)初识Fragment —— 3.2动态添加
- Android之Fragment(四):碎片的生命周期
- 碎片(Fragment)的生命周期
- Fragment碎片的生命周期
- Fragment碎片的生命周期
- android碎片Fragment简介
- Android 程式开发:(十三)特殊碎片 —— 13.1 ListFragment
- Android 程式开发:(一)详解活动 —— 1.1 Activity的生命周期
- Android——Fragment(碎片)的概念设计...
- Android——Fragment(碎片)的静态加载方式....
- Android——Fragment(碎片)的动态加载方式....
- Fragment(碎片)(2)-的生命周期
- Android——碎片Fragment
- NoSQL之HBase
- Fragment的使用
- 18. 约瑟夫环
- Android Phone模块 一
- MPEG2简单码流分析
- Android 程式开发:(三)碎片简介 —— 3.2 Fragment的生命周期
- 如何在CStringArray 数组中添加元素,遍历输出元素
- Android Phone模块 二
- linux-2.6.32在mini2440开发板上移植----- RTC移植
- Android Phone 模块3
- 解读C指针(5)——笔试题解析
- 永久修改grub2启动顺序
- Convert Sorted Array to Binary Search Tree
- 数据结构---各种树模板 持续更新···