Activity作為四大組件之一驾中,也是我們開(kāi)發(fā)中必不可少的一部分疼电,但有時(shí)候在開(kāi)發(fā)中會(huì)因?yàn)橹皇褂靡徊糠侄z漏掉其他的東西。先暫時(shí)寫(xiě)一些据德,有錯(cuò)誤的地方歡迎指正鳄乏。
Activity的生命周期
onCreate():Activity正在被創(chuàng)建,用來(lái)做一些初始化的工作棘利,比如加載布局資源和初始化數(shù)據(jù)橱野。
onStart():Activity正在被啟動(dòng),此時(shí)是不可見(jiàn)的善玫,無(wú)法與用戶進(jìn)行交互水援。
onResume():Activity此時(shí)是可見(jiàn),出現(xiàn)在前臺(tái)并開(kāi)始活動(dòng)茅郎。
onPause():Activity正在停止蜗元。
onStop():Activity即將停止。
onDestory():Activity即將銷毀系冗∞瓤郏可以做一些回收的工作和資源的釋放。
onRestart():Activity正在重新啟動(dòng)掌敬。一般情況下當(dāng)前Activity從不可見(jiàn)到可見(jiàn)的時(shí)候惯豆,onRestart()就會(huì)被調(diào)用。比如按home鍵回到桌面再進(jìn)入Activity時(shí)會(huì)被調(diào)用奔害。后面會(huì)有Log日志針對(duì)這一情況的生命周期的先后執(zhí)行情況進(jìn)行記錄總結(jié)楷兽。
有關(guān)Activity的生命周期的Log測(cè)試
-
啟動(dòng)測(cè)試
這就是正常啟動(dòng)一個(gè)Activity的生命周期的先后順序
-
點(diǎn)擊Home鍵到桌面再返回的測(cè)試
當(dāng)點(diǎn)擊Home鍵時(shí),手機(jī)界面由程序跳到桌面舀武,執(zhí)行了onPause()和onStop()方法拄养,再點(diǎn)擊應(yīng)用的icon進(jìn)入到應(yīng)用時(shí),會(huì)執(zhí)行onRestart()方法银舱,再執(zhí)行onStart()和onResume();
-
關(guān)于從當(dāng)前Activity進(jìn)入到下一個(gè)Activity的生命周期的運(yùn)行測(cè)試
當(dāng)我們從當(dāng)前Activity進(jìn)入下一個(gè)新的Activity時(shí),如果不測(cè)試跛梗,我還理解的是舊的Activity的onStop()先執(zhí)行才會(huì)執(zhí)行新的Activit的onCreate()寻馏,然而測(cè)試后才知道,當(dāng)新的Activity的前臺(tái)顯示并可以交互后(onResume)核偿,舊的Activity的onStop才執(zhí)行诚欠。
-
關(guān)于從當(dāng)前Activity進(jìn)入到下一個(gè)Activity(透明)的生命周期的運(yùn)行測(cè)試
同樣是上面的跳轉(zhuǎn),當(dāng)新的Activity設(shè)置為透明的時(shí)候,舊的Activity不會(huì)回調(diào)onStop().
那么轰绵,為什么不會(huì)回調(diào)onStop()呢粉寞?原因是,onStop方法是當(dāng)Activity完全不可見(jiàn)的時(shí)候才會(huì)被調(diào)用左腔,當(dāng)新的Activity設(shè)置為透明時(shí)唧垦,舊Activity依舊可見(jiàn),所以onStop()不會(huì)被調(diào)用液样。