Android Activity 生命週期詳解

學習android開發這麼久對於activity的生命週期還沒有仔細思考過,所以,我大致的把這些東西整理一下,希望通過這使自己理解的更透徹點吧!

首先看一下Activity生命週期圖和它的的四個階段 


它的的四個階段

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()。

現在通過一個例子來了解它的生命周方法在四個階段的用法:

 七個生命週期方法如下,它們的作用見下面示例方法註釋中

   protected void onCreate(Bundle savedInstanceState)

   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時調用的方法如下:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章