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

简介:

一、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.  * 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 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...  
相关文章
|
11月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1931 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
11月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1229 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
11月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1289 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
1048 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
11月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
544 0
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
1503 6
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
657 0

热门文章

最新文章