1. 程式人生 > >Fragment與Activity生命週期的區別與認識

Fragment與Activity生命週期的區別與認識

Activity的生命週期

Fragment的生命週期

Activity與Fragment生命週期的區別

測試程式碼

  1. package com.goso.testapp;  
  2. import android.app.Activity;  
  3. import android.app.ListFragment;  
  4. import android.os.Bundle;  
  5. import android.util.Log;  
  6. import android.view.LayoutInflater;  
  7. import android.view.View;  
  8. import android.view.ViewGroup;  
  9. import android.widget.ArrayAdapter;  
  10. import android.widget.ListView;  
  11. /** 
  12.  * Demonstration of using ListFragment to show a list of items 
  13.  * from a canned array. 
  14.  */
  15. publicclass FragmentListArray extends Activity {  
  16.     @Override
  17.     protectedvoid 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.     @Override
  27.     protectedvoid onStart() {  
  28.         // TODO Auto-generated method stub
  29.         super.onStart();  
  30.         Log.e("HJJ""Activity &&&& onStart...");  
  31.     }  
  32.     @Override
  33.     protectedvoid onResume() {  
  34.         // TODO Auto-generated method stub
  35.         super.onResume();  
  36.         Log.e("HJJ""Activity &&&& onResume...");  
  37.     }  
  38.     @Override
  39.     protectedvoid onStop() {  
  40.         // TODO Auto-generated method stub
  41.         super.onStop();  
  42.         Log.e("HJJ""Activity &&&& onStop...");  
  43.     }  
  44.     @Override
  45.     protectedvoid onPause() {  
  46.         // TODO Auto-generated method stub
  47.         super.onPause();  
  48.         Log.e("HJJ""Activity &&&& onPause...");  
  49.     }  
  50.     @Override
  51.     protectedvoid onDestroy() {  
  52.         // TODO Auto-generated method stub
  53.         super.onDestroy();  
  54.         Log.e("HJJ""Activity &&&& onDestroy...");  
  55.     }  
  56.     publicstaticclass ArrayListFragment extends ListFragment {  
  57.         @Override
  58.         publicvoid onAttach(Activity activity) {  
  59.             // TODO Auto-generated method stub
  60.             Log.e("HJJ""ArrayListFragment **** onAttach...");  
  61.             super.onAttach(activity);  
  62.         }  
  63.         @Override
  64.         publicvoid onCreate(Bundle savedInstanceState) {  
  65.             // TODO Auto-generated method stub
  66.             Log.e("HJJ""ArrayListFragment **** onCreate...");  
  67.             super.onCreate(savedInstanceState);  
  68.         }  
  69.         @Override
  70.         public View onCreateView(LayoutInflater inflater, ViewGroup container,  
  71.                 Bundle savedInstanceState) {  
  72.             // TODO Auto-generated method stub
  73.             Log.e("HJJ""ArrayListFragment **** onCreateView...");  
  74.             returnsuper.onCreateView(inflater, container, savedInstanceState);  
  75.         }  
  76.         @Override
  77.         publicvoid onActivityCreated(Bundle savedInstanceState) {  
  78.             super.onActivityCreated(savedInstanceState);  
  79.             Log.e("HJJ""ArrayListFragment **** onActivityCreated...");  
  80.             String[] array = new String[]{"C++""JAVA""PYTHON"};  
  81.             setListAdapter(new ArrayAdapter<String>(getActivity(),  
  82.                     android.R.layout.simple_list_item_1, array));  
  83.         }  
  84.         @Override
  85.         publicvoid onStart() {  
  86.             // TODO Auto-generated method stub
  87.             Log.e("HJJ""ArrayListFragment **** onStart...");  
  88.             super.onStart();  
  89.         }  
  90.         @Override
  91.         publicvoid onResume() {  
  92.             Log.e("HJJ""ArrayListFragment **** onResume...");  
  93.             // TODO Auto-generated method stub
  94.             super.onResume();  
  95.         }  
  96.         @Override
  97.         publicvoid onPause() {  
  98.             Log.e("HJJ""ArrayListFragment **** onPause...");  
  99.             // TODO Auto-generated method stub
  100.             super.onPause();  
  101.         }  
  102.         @Override
  103.         publicvoid onStop() {  
  104.             Log.e("HJJ""ArrayListFragment **** onStop...");  
  105.             // TODO Auto-generated method stub
  106.             super.onStop();  
  107.         }  
  108.         @Override
  109.         publicvoid onDestroyView() {  
  110.             Log.e("HJJ""ArrayListFragment **** onDestroyView...");  
  111.             // TODO Auto-generated method stub
  112.             super.onDestroyView();  
  113.         }  
  114.         @Override
  115.         publicvoid onDestroy() {  
  116.             // TODO Auto-generated method stub
  117.             Log.e("HJJ""ArrayListFragment **** onDestroy...");  
  118.             super.onDestroy();  
  119.         }  
  120.         @Override
  121.         publicvoid onDetach() {  
  122.             Log.e("HJJ""ArrayListFragment **** onDetach...");  
  123.             // TODO Auto-generated method stub
  124.             super.onDetach();  
  125.         }  
  126.         @Override
  127.         publicvoid onListItemClick(ListView l, View v, int position, long id) {  
  128.             Log.i("FragmentList""Item clicked: " + id);  
  129.         }  
  130.     }  

結果

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