學習android開發這麼久對於activity的生命週期尚未仔細思考過,因此,我大體的把這些東西整理一下,但願經過這使本身理解的更透徹點吧!android
首先看一下Activity生命週期圖和它的的四個階段 app
它的的四個階段
學習
1. 開始Activity:在這個階段依次執行3個生命週期方法:onCreate()、onStart()和onResume()。
2. Activity失去焦點:若是在Activity得到焦點的狀況下進入其餘的Activity,這時當前的Activity會失去焦點。在這一階段,會依次執行onPause()和onStop()方法。
3. Activity從新得到焦點:若是Activity從新得到焦點,會依次執行 3個生命週期方法:onRestart()、onStart()和onResume()。
4. 關閉Activity:當Activity被關閉時系統會依次執行3個生命週期方法:onPause()、onStop()和onDestroy()。
動畫
如今經過一個例子來了解它的生命周方法在四個階段的用法:spa
七個生命週期方法以下,它們的做用見下面示例方法註釋中code
protected void onCreate(Bundle savedInstanceState)blog
protected void onStart()生命週期
protected void onResume()資源
protected void onPause()開發
protected void onStop()
protected void onRestart()
protected void onDestroy()
示例代碼:
package com.liu.activity; import android.app.Activity; import android.os.Bundle; import android.util.Log; public class MyActivity extends Activity { private static final String lifeTag = "Activity生命週期"; //當Activity第一次被建立時調用,咱們能夠在這進行初始化操做 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d(lifeTag,"---->oncreate()被執行"); } //onStart()方法在Activity開始被執行時調用,它緊隨onCreate()方法以後調用 protected void onStart() { super.onStart(); Log.d(lifeTag,"---->onStart()被執行"); } //onResume()方法在Activity即將與用戶交互時調用 protected void onResume() { super.onResume(); Log.d(lifeTag,"---->onResume()被執行"); } //當Activity從stopped狀態啓動時會調用onRestart(),後面老是調用onStart()方法 protected void onRestart() { super.onRestart(); Log.d(lifeTag,"---->onRestart()被執行"); } //在一個Activity啓動另外一個Activity時調用,它一般被用來持久化數據、中止動畫或其餘耗費資源的動做, //下一個Activity必須等待這個方法返回後在啓動,因此在這裏作過多的操做 protected void onPause() { super.onPause(); Log.d(lifeTag,"---->onPause()被執行"); } //onStop()方法在一個新的Activity啓動、其餘的Activity切換到前臺、當天Activity被銷燬時都會被調用 protected void onStop() { super.onStop(); Log.d(lifeTag,"---->onStop()被執行"); } //Activitybe被銷燬時調用 protected void onDestroy() { super.onDestroy(); Log.d(lifeTag,"---->onDestroy()被執行"); } }
啓動程序調用的方法以下:
當按下撥號鍵使activity失去焦點調用的方法以下:
當按下返回鍵使Activity得到焦調用的方法以下,:
關閉Avtivity時調用的方法以下: