Android開(kāi)發(fā)學(xué)習(xí)教程(23)- 淺談Activity的生命周期
— 一舉成名天下知,十年寒窗滿腹墨。
關(guān)于 Activity 的生命周期,可以說(shuō)是每一位 Android?開(kāi)發(fā)者的入門(mén)必備知識(shí),也可以說(shuō)是入了門(mén)就幾乎不會(huì)再翻看的內(nèi)容。
相信同行們都知道,這是初級(jí)開(kāi)發(fā)者面試必問(wèn)的問(wèn)題,雖然問(wèn)這個(gè)問(wèn)題的意義并不大,主要還是面試官要找一個(gè)開(kāi)場(chǎng)過(guò)渡一下罷了。
雖說(shuō)簡(jiǎn)單,但是如果答不上來(lái),那可不是出師未捷身先死?
先來(lái)放一張來(lái)自官方文檔陳年經(jīng)典老圖:
下面一一介紹一下生命周期的七個(gè)函數(shù)調(diào)用:
onCreate() :當(dāng) Activity 第一次創(chuàng)建時(shí)會(huì)被調(diào)用。這是生命周期的第一個(gè)方法,在這個(gè)方法中,可以做一些初始化工作,比如調(diào)用 setContentView() 去加載界面布局資源,初始化 Activity 所需的數(shù)據(jù)。當(dāng)然也可借助 onCreate() 方法中的 Bundle 對(duì)象來(lái)回復(fù)異常情況下 Activity 結(jié)束時(shí)的狀態(tài)。
onRestart() :表示 Activity 正在重新啟動(dòng)。一般情況下,當(dāng)當(dāng)前 Activity 從不可見(jiàn)重新變?yōu)榭梢?jiàn)狀態(tài)時(shí),onRestart() 就會(huì)被調(diào)用。這種情形一般是用戶行為導(dǎo)致的,比如用戶按 HOME 鍵切換到桌面或打開(kāi)了另一個(gè)新的 Activity,接著用戶又回到了這個(gè) Actvity。
onStart() :表示 Activity 正在被啟動(dòng),即將開(kāi)始,這時(shí) Activity 已經(jīng)出現(xiàn)了,但是還沒(méi)有出現(xiàn)在前臺(tái),無(wú)法與用戶交互。這個(gè)時(shí)候可以理解為 Activity 已經(jīng)顯示出來(lái),但是我們還看不到。
onResume() :表示 Activity 已經(jīng)可見(jiàn)了,且出現(xiàn)在前臺(tái)并開(kāi)始活動(dòng)。需要和 onStart() 對(duì)比,onStart() 的時(shí)候 Activity 還在后臺(tái), onResume() 的時(shí)候 Activity 才顯示到前臺(tái)。
onPause() :表示 Activity 正在停止但仍可見(jiàn),正常情況下,緊接著 onStop() 就會(huì)被調(diào)用。在特殊情況下,如果這個(gè)時(shí)候快速地回到當(dāng)前 Activity,那么 onResume() 就會(huì)被調(diào)用(極端情況)。onPause() 中不能進(jìn)行耗時(shí)操作,會(huì)影響到新 Activity 的顯示。因?yàn)?onPause() 必須執(zhí)行完,新的 Activity 的 onResume() 才會(huì)執(zhí)行。
onStop() :表示 Activity 即將停止,不可見(jiàn),位于后臺(tái)。可以做稍微重量級(jí)的回收工作,同樣不能太耗時(shí)。
onDestory() :表示 Activity 即將銷(xiāo)毀,這是 Activity 生命周期的最后一個(gè)回調(diào),可以做一些回收工作和最終的資源回收。
源碼鏈接:https://yunjunet.cn/876803.html