Activity的生命周期
actvitiy生命周期是如何的呢,了解了activity的生命周期对于android的开发是至关重要的。我们都知道activity内包含了以下的方法:
onCreate\onStart\onRestart\onResume\onPause\onStop\onDestroy
我们从编代码、运行程序、执行操作的过程来逐步了解activity的生命周期。
1、首先定义一个activity叫 ActivityLifeCycleActivity.java
1 /** 2 * Created by kk on 2015/5/24 024. 3 */ 4 public class ActivityLifeCycleActivity extends Activity{ 5 6 private static final String TAG = "ActivityLifeCycle"; 7 8 @Override 9 protected void onCreate(Bundle savedInstanceState) { 10 super.onCreate(savedInstanceState); 11 12 setContentView(R.layout.activity_lifecycle); 13 14 Log.i(TAG, "onCreate..."); 15 } 16 17 18 @Override 19 protected void onStart() { 20 super.onStart(); 21 Log.i(TAG, "onStart..."); 22 } 23 24 @Override 25 protected void onRestart() { 26 super.onRestart(); 27 Log.i(TAG, "onRestart..."); 28 } 29 30 @Override 31 protected void onResume() { 32 super.onResume(); 33 Log.i(TAG, "onResume..."); 34 } 35 36 @Override 37 protected void onPause() { 38 super.onPause(); 39 Log.i(TAG, "onPause..."); 40 } 41 42 @Override 43 protected void onStop() { 44 super.onStop(); 45 Log.i(TAG, "onStop..."); 46 } 47 48 @Override 49 protected void onDestroy() { 50 super.onDestroy(); 51 Log.i(TAG, "onDestroy..."); 52 } 53 }
2、启动activity,运行到模拟器如下画面
此时查看logcat内容显示为:
05-24 13:08:43.835 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onCreate...
05-24 13:08:43.835 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onStart...
05-24 13:08:43.835 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onResume...
3、点击Back键后查看logcat内容显示为:
05-24 13:25:32.134 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onPause...
05-24 13:25:32.742 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onStop...
05-24 13:25:32.742 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onDestroy...
4、点击home键后查看logcat内容显示为:
05-24 13:27:04.253 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onPause...
05-24 13:27:04.829 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onStop...
5、紧接着第4步骤,再次进入activity,logcat内容显示为
05-24 13:29:10.443 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onRestart...
05-24 13:29:10.443 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onStart...
05-24 13:29:10.443 7197-7197/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onResume...
6、当在此activity打开一个新的activity,logcat内容显示为(效果与点home键一样,因此当返回时的执行结果如上面所示)
05-24 13:36:24.842 17393-17393/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onPause...
05-24 13:36:25.278 17393-17393/com.baixd.app.framework2 I/ActivityLifeCycle﹕ onStop...
7、当在此activity打开一个AlertDialog,logcat内容显示为
无显示,对activity的生命周期无影响
8、当在此activity打开一个PopWindow,logcat内容显示为
无显示,对activity的生命周期无影响
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了