天天看點

Activity生命周期示範

Activity生命周期示範

在“管理activity的生命周期”系列課程中,我們講解了activity的生命周期,官方網站上是有一個示範Demo的(下載下傳Demo),通過我的示範,來給大家講解一下activity的生命周期。

編譯運作工程,進入app,界面如下:

Activity生命周期示範

Activity A是主入口activity,是以顯示ActivityA的界面。Activity A顯示在前台,是以依次有3個生命周期回調方法被調用:onCreate() -> onStart() -> onResume()。

接下來,我們啟動B:

Activity生命周期示範

此時Activity B進入前台,狀态是運作,Activity A完全不可見,則進入背景,狀态是停止,他們兩個的生命周期方法都會被調用,調用順序如下圖所示:

Activity生命周期示範

請注意他們的調用順序,A.onPause()->B.onCreate()->B.onStart()->B.onResume()->A.onStop()。

大家注意到了吧,A.onStop()是在B完全顯示出來時才調用的,這就是為什麼把CPU密集型的釋放資源的動作放在onStop()裡進行,而不是放在onPause()裡進行,因為如果onPause()操作時間太長的話,會影響Activity B的及時顯示的。

現在結束B,如下圖所示:

Activity生命周期示範

此時A和B的生命周期方法調用順序如下:

Activity生命周期示範

由于B調用了finish()結束自己,是以B此時會被調用onDestroy(),且處于銷毀狀态。

在A的界面啟動一個對話框風格的activity時,會發生什麼呢?如下圖,啟動對話框:

Activity生命周期示範

由于對話框沒有填滿整個螢幕,是以A部分可見,它的onPause()回調被調用,目前處于暫停狀态。接着關閉對話框,如下圖:

Activity生命周期示範

A完全可見,則onResume()回調被調用,處于運作狀态。

以上就是Activity的生命周期的簡單示範,大家可以下載下傳下Demo,然後自己操作一下,就會明白了。