Fragment 与 Activity 生命周期对比

一、Activity的生命周期图:

二、Fragment生命周期图

三、对比图

四、测试代码:

 

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

五、结果

 

 

[java]  view plain copy
  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...  

你可能感兴趣的:(Android)