1. 程式人生 > >Android四大元件——Activity的生命週期

Android四大元件——Activity的生命週期

  Activivity作為android四大元件之首,在使用中是最多的元件,在中文直譯為活動,在一個專案中,正常情況下,除了Window,dialog,Toast之外,我們見到的介面只有Activity。

那麼我們就來研究下一般情況下Activity的生命週期吧。

  當我們啟動一個應用時,會去配置清單中查詢入口的Activity,至於啟動查詢這裡就不說了,然後會回撥一系列方法。話不多說,先上張圖

在看圖的時候我們說說各個方法的回撥時間:

1.oncreate():表示Activity正在被建立,在這個方法中,一般是載入佈局,初始化一些介面、資料的操作。

2.onstart():表示Activity正在啟動,此時Activity還在後臺,無法與使用者互動,我們還不能看見。

3.onresume();表示Activity已經被使用者可見,已經在前臺,此時可以和使用者互動。

舉個栗子:當我們正常啟動一個名字叫A的Activity時都會先回調oncreate()-onstart()-onresume();

4.onpause();表示Activity正在被停止,此時Activity還在前臺,一般此方法能夠回撥結束後會接著會回撥onstop()這個方法,我們在此方法可以儲存資料或者停止動畫,但是需要注意的一點是在此方法內不可做太耗時的操作,因為只有噹噹前的Activity執行onpause()結束後,才會回撥新啟動的Activity裡面的onresume();即另外的Activity才能被使用者可見。

5.onstop();在onpause()之後被回撥,在這裡面可做一些稍微耗時的操作。

6.ondestory();表示Activity被銷燬時回撥的方法,我們可以在此方法內做一些回收和資料釋放等一些工作。

舉個栗子:當我們從A這個Activity啟動另外一個Activity名字叫B時候,或者按Home鍵,A會執行onpause()-onstop(),需要注意的是,如果A這個Activity設定了主題為透明的話就不會只行onstop這個方法了,還有一個情況可能在記憶體不足時執行ondestory;當我們按下back鍵時則執行onpause()-onstop-ondestory();

7.onrestart();表示Activity正在被重新啟動;

還是舉個栗子:當我們按下home鍵時一般都是onpause-onstop,此時Activity退回到後臺,我們在啟動此Activity時則執行onrestart() -onstart()-onresume();

從回撥方法我們可以看出oncreate()和onDestory是一組,onresume()和onstop()是一組,以為他們都是從是否在前臺這個角度來說,onstart()和onpause()則是從是否可見這個角度來說的。

今天的部落格就寫到這裡吧,如有不正,有大神看見了,希望能指正下。要擼程式碼了,下一篇我準備總結下在橫豎屏切換時的Activity的生命週期及Activity的啟動模式及應用場景。

路漫漫其修遠兮,吾將上下而求索。