android學習之Activity的生命週期

       生命週期描述的是一個類從創建(new出來)到死亡(垃圾回收)的過程中會執行的方法。在這個過程中,會針對不同的生命階段調用不同的的方法。

       Activity是android中四大組件之一,是最常見的應用組件,也是用的最多的組件,它能夠提供一個界面與用戶進行交互。Activity從創建到銷燬有多種狀態,從一種狀態到另一種狀態時會激發相應的回調方法,這些回調方法包括:onCreate  onDestory  onStart  onStop  onResume  onPause。這些方法都是兩兩對應的,onCreate-->創建與onDestory-->銷燬;onStart-->可見與onStop-->不可見;onResume-->可編輯(焦點)和onPause-->未獲得焦點。最後還有一個方法是onRestart,這個方法在什麼時候調用呢?當Activity被onStop後,但是並沒有onDestory,即並沒有被銷燬時,用戶重新回到當前Activity時,就調用onRestart方法,這裏就不再是調用onCreate方法了。

public class MainActivity extends ActionBarActivity {
	private final static String TAG = "MainActivity";
	@Override
	// Activity被創建時調用
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Log.e(TAG, "onCreate.......");
	}
	@Override
	// 該狀態用戶可見,但是用戶還不能與之進行交互
	protected void onStart() {
		super.onStart();
		Log.e(TAG, "onStart.......");
	}
	@Override
	// 該狀態是Activity獲得用戶焦點,用戶可以與之進行交互
	protected void onResume() {
		super.onResume();
		Log.e(TAG, "onResume.......");
	}
	@Override
	//與onResume對應,當Activity失去焦點時調用
	protected void onPause() {
		super.onPause();
		Log.e(TAG, "onPause.......");
	}
	@Override
	//與onStart對應,當Activity不可見時調用
	protected void onStop() {
		super.onStop();
		Log.e(TAG, "onStop.......");
	}
	@Override
	//與onCreate對應,當Activity被銷燬時調用
	protected void onDestroy() {
		super.onDestroy();
		Log.e(TAG, "onDestroy.......");
	}
	@Override
	//Activity從後臺重新回到前臺調用
	protected void onRestart() {
		super.onRestart();
		Log.e(TAG, "onRestart.......");
	}
}
       Activity的完整生命週期:oncreate-->onstart-->onresume-->onpause-->onstop-->ondestory。用戶在點擊返回鍵的時候,Activity會銷燬,這時Activity先是不可編輯,再是不可見,最後被銷燬。而當用戶點擊home鍵的時候,即表示退回到桌面,這時的Activity並不會被銷燬,所以這裏現實不可編輯,再是不可見,這時並不會調用onDestory方法被銷燬,此時再點擊進入該應用,會調用onRestart方法,不再是調用Activity,然後再是調用onStart,onResume。

       下面是Activity的生命週期圖:


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