[Android]Fragment生命周期

官方文档中有详细的文字说明,不过最好还是实践下,熟悉过程。http://developer.android.com/guide/components/fragments.html

一、Activity的生命周期图:

二、Fragment生命周期图

三、对比图

四、测试代码:

 

[java] view plaincopy

 

  1. package com.goso.testapp;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.ListFragment;  
  5. import android.os.Bundle;  
  6. import android.util.Log;  
  7. import android.view.LayoutInflater;  
  8. import android.view.View;  
  9. import android.view.ViewGroup;  
  10. import android.widget.ArrayAdapter;  
  11. import android.widget.ListView;  
  12.   
  13. /** 
  14.  * Demonstration of using ListFragment to show a list of items 
  15.  * from a canned array. 
  16.  */  
  17. public class FragmentListArray extends Activity {  
  18.   
  19.     @Override  
  20.     protected void onCreate(Bundle savedInstanceState) {  
  21.         super.onCreate(savedInstanceState);  
  22.         Log.e("HJJ", "Activity &&&& onCreate...");  
  23.         // Create the list fragment and add it as our sole content.  
  24.         if (getFragmentManager().findFragmentById(android.R.id.content) == null) {  
  25.             ArrayListFragment list = new ArrayListFragment();  
  26.             getFragmentManager().beginTransaction().add(android.R.id.content, list).commit();  
  27.         }  
  28.     }  
  29.   
  30.     @Override  
  31.     protected void onStart() {  
  32.         // TODO Auto-generated method stub  
  33.         super.onStart();  
  34.         Log.e("HJJ", "Activity &&&& onStart...");  
  35.     }  
  36.       
  37.     @Override  
  38.     protected void onResume() {  
  39.         // TODO Auto-generated method stub  
  40.         super.onResume();  
  41.         Log.e("HJJ", "Activity &&&& onResume...");  
  42.     }  
  43.       
  44.     @Override  
  45.     protected void onStop() {  
  46.         // TODO Auto-generated method stub  
  47.         super.onStop();  
  48.         Log.e("HJJ", "Activity &&&& onStop...");  
  49.     }  
  50.       
  51.     @Override  
  52.     protected void onPause() {  
  53.         // TODO Auto-generated method stub  
  54.         super.onPause();  
  55.         Log.e("HJJ", "Activity &&&& onPause...");  
  56.     }  
  57.       
  58.     @Override  
  59.     protected void onDestroy() {  
  60.         // TODO Auto-generated method stub  
  61.         super.onDestroy();  
  62.         Log.e("HJJ", "Activity &&&& onDestroy...");  
  63.     }  
  64.       
  65.     public static class ArrayListFragment extends ListFragment {  
  66.   
  67.         @Override  
  68.         public void onAttach(Activity activity) {  
  69.             // TODO Auto-generated method stub  
  70.             Log.e("HJJ", "ArrayListFragment **** onAttach...");  
  71.             super.onAttach(activity);  
  72.         }  
  73.           
  74.         @Override  
  75.         public void onCreate(Bundle savedInstanceState) {  
  76.             // TODO Auto-generated method stub  
  77.             Log.e("HJJ", "ArrayListFragment **** onCreate...");  
  78.             super.onCreate(savedInstanceState);  
  79.         }  
  80.           
  81.         @Override  
  82.         public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  83.                 Bundle savedInstanceState) {  
  84.             // TODO Auto-generated method stub  
  85.             Log.e("HJJ", "ArrayListFragment **** onCreateView...");  
  86.             return super.onCreateView(inflater, container, savedInstanceState);  
  87.         }  
  88.           
  89.         @Override  
  90.         public void onActivityCreated(Bundle savedInstanceState) {  
  91.             super.onActivityCreated(savedInstanceState);  
  92.             Log.e("HJJ", "ArrayListFragment **** onActivityCreated...");  
  93.             String[] array = new String[]{"C++", "JAVA", "PYTHON"};  
  94.             setListAdapter(new ArrayAdapter<String>(getActivity(),  
  95.                     android.R.layout.simple_list_item_1, array));  
  96.         }  
  97.   
  98.         @Override  
  99.         public void onStart() {  
  100.             // TODO Auto-generated method stub  
  101.             Log.e("HJJ", "ArrayListFragment **** onStart...");  
  102.             super.onStart();  
  103.         }  
  104.           
  105.         @Override  
  106.         public void onResume() {  
  107.             Log.e("HJJ", "ArrayListFragment **** onResume...");  
  108.             // TODO Auto-generated method stub  
  109.             super.onResume();  
  110.         }  
  111.           
  112.         @Override  
  113.         public void onPause() {  
  114.             Log.e("HJJ", "ArrayListFragment **** onPause...");  
  115.             // TODO Auto-generated method stub  
  116.             super.onPause();  
  117.         }  
  118.           
  119.         @Override  
  120.         public void onStop() {  
  121.             Log.e("HJJ", "ArrayListFragment **** onStop...");  
  122.             // TODO Auto-generated method stub  
  123.             super.onStop();  
  124.         }  
  125.           
  126.         @Override  
  127.         public void onDestroyView() {  
  128.             Log.e("HJJ", "ArrayListFragment **** onDestroyView...");  
  129.             // TODO Auto-generated method stub  
  130.             super.onDestroyView();  
  131.         }  
  132.           
  133.         @Override  
  134.         public void onDestroy() {  
  135.             // TODO Auto-generated method stub  
  136.             Log.e("HJJ", "ArrayListFragment **** onDestroy...");  
  137.             super.onDestroy();  
  138.         }  
  139.           
  140.         @Override  
  141.         public void onDetach() {  
  142.             Log.e("HJJ", "ArrayListFragment **** onDetach...");  
  143.             // TODO Auto-generated method stub  
  144.             super.onDetach();  
  145.         }  
  146.           
  147.         @Override  
  148.         public void onListItemClick(ListView l, View v, int position, long id) {  
  149.             Log.i("FragmentList", "Item clicked: " + id);  
  150.         }  
  151.     }  
  152. }  

五、结果

 

 

[java] view plaincopy

 

  1. onCreate过程  
  2. 01-22 15:30:28.091: E/HJJ(10315): Activity &&&& onCreate...  
  3. 01-22 15:30:28.091: E/HJJ(10315): ArrayListFragment **** onAttach...  
  4. 01-22 15:30:28.091: E/HJJ(10315): ArrayListFragment **** onCreate...  
  5. 01-22 15:30:28.115: E/HJJ(10315): ArrayListFragment **** onCreateView...  
  6. 01-22 15:30:28.123: E/HJJ(10315): ArrayListFragment **** onActivityCreated...  
  7.   
  8. onStart过程  
  9. 01-22 15:30:28.123: E/HJJ(10315): Activity &&&& onStart...  
  10. 01-22 15:30:28.123: E/HJJ(10315): ArrayListFragment **** onStart...  
  11.   
  12. onResume过程  
  13. 01-22 15:30:28.123: E/HJJ(10315): Activity &&&& onResume...  
  14. 01-22 15:30:28.123: E/HJJ(10315): ArrayListFragment **** onResume...  
  15.   
  16. onPause过程  
  17. 01-22 15:31:26.748: E/HJJ(10315): ArrayListFragment **** onPause...  
  18. 01-22 15:31:26.748: E/HJJ(10315): Activity &&&& onPause...  
  19.   
  20. onStop过程  
  21. 01-22 15:31:27.638: E/HJJ(10315): ArrayListFragment **** onStop...  
  22. 01-22 15:31:27.638: E/HJJ(10315): Activity &&&& onStop...  
  23.   
  24. onStart过程  
  25. 01-22 15:31:57.537: E/HJJ(10315): Activity &&&& onStart...  
  26. 01-22 15:31:57.537: E/HJJ(10315): ArrayListFragment **** onStart...  
  27.   
  28. onResume过程  
  29. 01-22 15:31:57.537: E/HJJ(10315): Activity &&&& onResume...  
  30. 01-22 15:31:57.537: E/HJJ(10315): ArrayListFragment **** onResume...  
  31.   
  32. onPause过程  
  33. 01-22 15:32:47.412: E/HJJ(10315): ArrayListFragment **** onPause...  
  34. 01-22 15:32:47.412: E/HJJ(10315): Activity &&&& onPause...  
  35.   
  36. onStop过程  
  37. 01-22 15:32:47.865: E/HJJ(10315): ArrayListFragment **** onStop...  
  38. 01-22 15:32:47.865: E/HJJ(10315): Activity &&&& onStop...  
  39.   
  40. onDestroy过程  
  41. 01-22 15:32:47.865: E/HJJ(10315): ArrayListFragment **** onDestroyView...  
  42. 01-22 15:32:47.865: E/HJJ(10315): ArrayListFragment **** onDestroy...  
  43. 01-22 15:32:47.865: E/HJJ(10315): ArrayListFragment **** onDetach...  
  44. 01-22 15:32:47.865: E/HJJ(10315): Activity &&&& onDestroy... 
时间: 2024-11-02 17:41:27

[Android]Fragment生命周期的相关文章

实例讲解Android应用开发中Fragment生命周期的控制_Android

一.Fragment的生命周期初探 因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的. 如果Activity是暂停状态,其中所有的Fragment都是暂停状态:如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动:如果Activity被销毁,那么它其中的所有Fragment都会被销毁. 但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除F

Android开发之Activity和Fragment生命周期对比图

一.Activity 生命周期 二.Fragment 生命周期 三.对比图 四.测试代码 [java] view plaincopy package com.goso.testapp;      import android.app.Activity;   import android.app.ListFragment;   import android.os.Bundle;   import android.util.Log;   import android.view.LayoutInfla

关于fragment生命周期

问题描述 关于fragment生命周期 如题.关于生命周期.A fragment跳转到B fragment,然后back回Afragment的哪一个函数里? 解决方案 1.当一个fragment被创建的时候,它会经历以下状态.. onAttach() onCreate() onCreateView() onActivityCreated() ??? 2.当这个fragment对用户可见的时候,它会经历以下状态. onStart() onResume() ??? 3.当这个......答案就在这里

Android Activity生命周期详解_Android

Activity 的生命周期. 一.理解Activity Activity是Android程序的4大组件之一. Activity是Android程序的表示层.程序的每一个显示屏幕就是一个Activity. 学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件:或者你可以把它理解成一个Windows的窗口. 下面看一下Activity类的继承关系:    从这里可以看到Activity是Context类的子类,大家对此先有个印象.  二.理解Activity的生命周期 手机最重

Android Activity生命周期和堆栈管理的详解

Activity的生命周期 Activity是Android中的四大组件之一,也是最基本,最重要的组件,是android系统提供一个可视化的,能与用户交换的组件. 系统提供的组件,不需要用户实例化,用户也不能实例化,是系统进行回调,例如web开发的servlet也是系统提供的,和android 的其他系统组件一样. 那么不需要我们实例化我们怎么用呢,这些组件都有相同的特点就是: 1.都需要在配置文件中注册 2.都需要自定义类去继承系统的Api 3.都有自己的生命周期 那么Activity的生命周

Android Activity生命周期详解

Activity 的生命周期. 一.理解Activity Activity是Android程序的4大组件之一. Activity是Android程序的表示层.程序的每一个显示屏幕就是一个Activity. 学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件:或者你可以把它理解成一个Windows的窗口. 下面看一下Activity类的继承关系: 从这里可以看到Activity是Context类的子类,大家对此先有个印象. 二.理解Activity的生命周期 手机最重要也是最

实例讲解Android应用开发中Fragment生命周期的控制

一.Fragment的生命周期初探 因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的. 如果Activity是暂停状态,其中所有的Fragment都是暂停状态:如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动:如果Activity被销毁,那么它其中的所有Fragment都会被销毁. 但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除F

Android Service生命周期及用法

上一节我讲解了Android Activity的生命周期,这一节我将讲解一下Service,首先我们要知道Service具体是干什么的,什么时候用到?以及它的生命周期等. Service概念及用途: Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行,那我们什么时候会用到Service呢?比如我们播放音乐的时候,有可能想边听音乐边干些其他事情,当我们退出播放音乐的应用,如果不

两分钟让你彻底明白Android Activity生命周期的详解(图文介绍)_Android

大家好,今天给大家详解一下Android中Activity的生命周期,我在前面也曾经讲过这方面的内容,但是像网上大多数文章一样,基本都是翻译Android API,过于笼统,相信大家看了,会有一点点的帮助 ,但是还不能完全吃透,所以我今天特意在重新总结一下.首先看一下Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章,在回头看一下这个图,你会明白的): Activity其实是继承了ApplicationContext这个类,我们可以重写以下方法,如下代码: 复