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的啟動模式及應用場景。
路漫漫其修遠兮,吾將上下而求索。