Android 第六課——Activity高級

Activity 生命週期:
緩存

生命週期7個方法的調用時機:spa

1)onCreate:第一次建立這個Activity時,也就是系統中沒有緩存當前的Activity時,這個方法首先被調用。調用以後這個Activity就會被壓入所謂的Android Task棧中緩存起來,下次用時出棧就能夠。因此,爲了更加節約資源,咱們通常把Activity所對應的layout中擁有的組件首先使用private做爲這個Activity的私有成員,而後在onCreate方法中初始化,這樣只要在Activity建立的時候,初始化一次組件就夠了。orm

2)onstart:當這個Activity成爲用戶可見狀態時,也就是在手機界面上正確顯示的時候這個方法會被調用。因此,若是一個Activity以前已經建立好了,下次再次調用時(好比返回按鈕)就會從Task棧中獲取直接返回給用戶,那麼就不會再調用onCreate了,而是先調用onRestart,而後等到用戶可見狀態時調用onStart。生命週期

3)onResume:當這個Activity成爲用戶可見狀態並且用戶能夠獲取焦點時,也就是在onStart以後,當這個視圖能夠與用戶交互時這個方法會被調用。這個方法調用完成以後,整個Activity就是處於運行狀態了。遊戲

4)onPause:當一個Activity正在使用,這時另外一個Activity開始啓動(比好比玩遊戲的時候忽然來電話)時,那麼前面那個Activity會調用onPause方法,使這個Activity處於暫停狀態。新的Activity若是第一次建立就會調用OnCreate不然調用onRestart。資源

5)onStop:當這個Activity被新的Activity徹底遮住時,也就是新的Activity徹底遮擋了這個Activity,那麼這個Activity就會調用onStop方法。it

6)onRestart:當這個Activity已經建立好緩存在Task棧中能夠直接取出返回給客戶時,這個方法就會被調用。也就是當這個Activity從Task棧中出棧的時候,這個方法會被調用。程序

7)onDestroy:若是在代碼中顯示調用了finish方法,或者系統資源不夠用的時候,或者用戶在當前Activity中按下了返回鍵時,這個方法就會被調用。這個方法被調用後,說明Task中沒有這個Activity的緩存,那麼下次啓動這個Activity時就不是調用onReStart了而是調用onCreate從頭開始。方法


Task概念:im

1) A Task is a stack of activities

2)在應用程序啓動時,第一個啓動的Activity建立以後就會被壓入Task棧中,緊接着若是這個時候又一個Activity被建立那麼這個新的Activity又會被壓入棧中,依次類推,Task棧就相似於Android系統的一個Activity換成機制。當咱們點擊返回按鈕時,Task棧中的Activity會逐個彈出,若是這個Activity被finish了,那麼這個Activity就不會緩存在Task棧中了,下次須要重新onCreate。

相關文章
相關標籤/搜索