別總聽別人去總結(jié)這些東西,聽一萬遍都不能成為你的東西薛窥,因?yàn)槭嵌值模蝗缱约喝タ丛创a眼姐,源碼里的注釋會(huì)對代碼解釋的很詳細(xì)诅迷,很多博客的博主寫的內(nèi)容也都是源碼翻譯過來的,所以想學(xué)習(xí)的話不如去直接看源碼众旗。
1 onCreate當(dāng)activity第一次被創(chuàng)建的時(shí)候被調(diào)用罢杉,所有的靜態(tài)的狀態(tài)設(shè)置都應(yīng)該在這個(gè)方法里完成,比如視圖的創(chuàng)建贡歧,列表數(shù)據(jù)的綁定滩租,以及一系列的靜態(tài)狀態(tài)的設(shè)置,隨后是onstart方法
2 onRestart 當(dāng)activity被stop后再次啟動(dòng)時(shí)候onStart方法會(huì)被在onStart方法之前調(diào)用
3 onStart 當(dāng)activity對用戶可見的時(shí)候被調(diào)用利朵,如果當(dāng)前activity來到前臺的話接著調(diào)用onResume方法律想,如何activity直接變得不可見的話調(diào)用onStop方法
4 onResume 當(dāng)activity馬上就要和用戶交互的時(shí)候調(diào)用,此時(shí)當(dāng)前activity位于棧頂绍弟,隨后跟著的生命周期方法就是onPause方法
5 onPause 當(dāng) activity要重新啟動(dòng)一個(gè)以前的acticity的時(shí)候這個(gè)方法會(huì)被調(diào)用技即,這個(gè)方法通常用來將數(shù)據(jù)持久化,停止動(dòng)畫樟遣,或者其他??cpu的操作而叼,這個(gè)方法的實(shí)現(xiàn)必須盡量快一點(diǎn)郭脂,因?yàn)橄乱粋€(gè)activity的onResume方法需要在這個(gè)activity的onPause方法返回時(shí)候才會(huì)調(diào)用。隨后的生命周期方法是onResume如果這個(gè)activity再次回到前臺澈歉,如果當(dāng)前activity直接變得不可見的話展鸡,那么隨后的生命周期方法就是onStop方法了。
6 onStop方法 當(dāng)前activity不再對用戶可見的時(shí)候調(diào)用埃难,比如說別的另一個(gè)activity位于這個(gè)activity之上也已經(jīng)調(diào)用過onResume了, onStop方法的調(diào)用發(fā)生在啟動(dòng)一個(gè)新的activity莹弊,或者一個(gè)舊的activity重新回到前臺,或者當(dāng)前activity被銷毀時(shí)候調(diào)用涡尘,跟隨著的生命周期方法是onRestart當(dāng)前activity再次回到前臺可以和用戶交互忍弛,或者跟隨的是生命周期方法onDestroy當(dāng)前activity馬上要銷毀了(onStop方法時(shí)候可以被直接被kill,前臺進(jìn)程缺少資源時(shí)候)
7 onDestroy activity被最終銷毀之前調(diào)用考抄,比如調(diào)用finish方法后會(huì)被調(diào)用细疚,或者系統(tǒng)臨時(shí)的銷毀這個(gè)實(shí)例去節(jié)省空間,可以通過方法isFinishing來區(qū)別這兩個(gè)場景川梅,(onDestroy方法時(shí)候可以被直接被kill疯兼,前臺進(jìn)程缺少資源的時(shí)候)
8 onStop 和 onDestroy方法可以被直接kill掉,被kill掉的時(shí)候不會(huì)執(zhí)行一行其他的方法贫途。所以要在onPause方法中做好數(shù)據(jù)的保存吧彪,