1. 程式人生 > >Activity的生命週期總結

Activity的生命週期總結

Activity的三種狀態:
顯示狀態:onCreate()/onStart()/onResume()

看不見狀態:onPause()/onStop()

銷燬狀態:onDestroy()

單個activity時:
應用程式啟動時:
onCreate()—>onStart()—>onResume()—>介面顯示到前臺
按返回鍵銷燬時:
onPause()—>onStop()—>onDestroy()—>消失

兩個Activity互動時:
由第一個介面通過intent跳轉至第二個介面時:
先是第一個介面顯示出來經歷的生命週期:
第一個onCreate()—>第一個onStart()—>第一個onResume();
當點選第一個介面裡的button進行跳轉時經歷的生命週期:
第一個onPause()—>第二個onCreate()—>第二個onStart()—>第二個onResume()—>第一個onStop();
按物理返回鍵,返回第一個介面時:
第二個onPause()—>第一個onRestart()—>第一個onStart()—>第一個onResume()—>第二個onStop()—>onDestroy();

Google為何設計這樣的生命週期模式呢??
為何先暫停當前介面再跳轉到另外的介面??
為了有更好的使用者體驗,才設計成這樣的模式的,比如當前正在播放音樂,有電話打進來,如果音樂不暫停,同時又有電話打進來,這種使用者體驗是很差勁的。

為何要有onCreate()—>onStart()—>onResume()這樣的顯示順序,這也是為了提高使用者體驗來設計的,如果沒有這些做保證,就會出現邏輯混亂。

總之 谷歌生命週期的設計都是充分考慮到了更好的使用者體驗的,一個好的系統如果沒有良好的使用者體驗,就不會得到更好的推廣,谷歌做到了這一點,所以Android系統才會如此流行。