前言:生老病死,是每个人都要经历的事情。所以不必惊慌,静下心,想想自己在人生所处的每个阶段该做些什么,才能让自己的人生价值提高,或者说自身价值提高。在一个生命周期里,某个阶段该完成的事,没完成,也许就会影响到整个生命周期。所以有时候人生不能堕落,一堕落也许许多美好的事情就会错过了,等待你的就只有无声的忏悔!
对于Activity的生命周期的流程,最经典的一张图如下:
1.一个Activity A启动时,它会经历下面各个阶段:
onCreate()-->onStart()-->onResume()
2.当另外一个Activity B正在被打开,Activity A还可以看见时,经历的阶段:
onPause()
3.当另外一个Activity B被打开,Activity A看不见时,经历的阶段:
onStop()
4.当Activity B关闭,回到Activity A时,经历的阶段:
onRestart()-->onStart()-->onResume()
5.当Activity A关闭后,经历的阶段:
onDestroy()
6.或者当当Activity A处于onPause和onStop状态时,当更高优先级的apps需要内存,此时系统内存不够,那么android系统就会将ctivity A所在的进程给杀了以释放资源,这样就又回到1中的阶段
注:每个Activity简单说就是一个界面,用界面理解上面就比较简单。
折腾个例子理解下:
1、创建一个项目TestActivity,建完如下:
2、在项目文件src->MainActivity.java中编写代码如下:
package com.wyz.testactivity; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends Activity { private static final String TAG="ActivityDemo"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "生命周期--创建阶段(onCreate)"); } protected void onStart() { super.onStart(); Log.d(TAG, "生命周期--开始阶段(onCreate)"); } protected void onResume() { super.onResume(); Log.d(TAG, "生命周期--恢复阶段(onResume)"); } protected void onPause() { super.onPause(); Log.d(TAG, "生命周期--暂停创建阶段(onPause)"); } protected void onStop() { super.onStop(); Log.d(TAG, "生命周期--停止创建阶段(onStop)"); } protected void onRestart() { super.onRestart(); Log.d(TAG, "生命周期--重启阶段(onRestart)"); } protected void onDestory() { super.onDestroy(); Log.d(TAG, "生命周期--销毁阶段(onDestory)"); } }
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
3.编译运行程序到模拟器,开始演示上面的打印信息
a.程序一运行起来,打印结果如下:
从上面可以看出程序一运行的Activity生命周期经历顺序。
b.我们接着按HOME键模拟跳到另外一个界面,即回到Android主界面,运行结果如下:
从结果来看,当按HOME键跳到另外一个界面时,生命周期先onPause()再到onStop()
c.接着在程序应用列表点本程序重新运行,让它重新显示界面,结果如下:
从显示结果,可以分析出,此时生命周期是先onRestart()-->onCreate()-->onResume()
d.最后就是当程序要关闭时,就执行onDestory; 本人苹果电脑,找不到后退键back,所以没演示到onDestroy()。