Android學習筆記4:Activity的生命週期學習

Activity是Android應用程序中使用頻率最高、最基本的組件。一個Activity對應一個UI

首先解釋一下什麼是生命週期:

  • 應用程序的生命週期,是指從創建到結束的全過程。android應用程序的生命週期都是Android框架進行管理,而不是由應用程序直接控制。每個應用的內存和進程都是由進行時獨立管理的,每個Android的應用程序在自己的進程中運行。
  • 應用程序組件有其生命週期:由Android初始化他們,以相應的Intent(即相應意圖),直到結束,實例被銷燬。
  • Activity被一個Activity棧管理,堆棧中保存對象的實例,在一個人物中可能存在多個同一Activity實例

應用程序的生命週期中的五種狀態:啓動,運行,暫停,停止,銷燬

  • 啓動:Activity被壓入棧頂。
  • 運行:Activity可見並獲得焦點,與用戶進行交互
  • 暫停:Activity可見但失去焦點
  • 停止:Activity被另一個Activity完全覆蓋,不可見,系統可以隨時將其釋放
  • 銷燬:系統將Activity從內存中刪除,Activity被彈出棧

Activity的生命週期圖:來自於ADT

 爲了測試生命週期,可以寫代碼測試Log.d();可以顯示出測試信息

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d("life cycle","onCreate");
    }

	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		Log.d("life cycle","onDestroy");
	}

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		Log.d("life cycle","onPause");
	}

	@Override
	protected void onRestart() {
		// TODO Auto-generated method stub
		super.onRestart();
		Log.d("life cycle","onRestart");
	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		Log.d("life cycle","onResume");
	}

	@Override
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		Log.d("life cycle","onStart");
	}

	@Override
	protected void onStop() {
		// TODO Auto-generated method stub
		super.onStop();
		Log.d("life cycle","onStop");
	} 
}
  1. 當正常啓動的時候,會依次調用onCreate()、onStart、onResume()

  1. 當正常關閉的時候,又會依次調用onPause()->onStop()->onDestroy(),被殺死

  1. 而例如來電話等,進程突然被打斷,先是onPause(),失去焦點,而後onStop,程序暫停

  1. 掛掉電話後,程序會先onReStart()重新開始,接着onStart()->onResume()繼續執行

  1. 有時候活動會因爲某些情況突然失去焦點,這時候onPause,暫停,回覆後onResume

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