自學(xué)Android第四天——活動的生命周期和生存期

? ??????????????????????????????????????????????生命周期

android是使用任務(wù)(Task)來管理活動的瘫想,一個任務(wù)就是一組存放在棧里的活動集合戚揭,這個棧也被稱為返回棧(Back Task)涩蜘。棧的數(shù)據(jù)結(jié)構(gòu)是后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)决乎。也就是我們啟動了一個新的活動它會返回棧頂中违柏,當(dāng)我們按下back肩或者調(diào)用finish()方法銷毀一個活動時一喘,該活動會出棧绒瘦,而這個活動前一個入棧的會處于棧頂闭树,顯示給用戶蚪腋。每個活動的生命周期最多會有4中不同的狀態(tài)擎厢。

1.運(yùn)行狀態(tài)

當(dāng)一個活動位于返回棧的棧頂時究流,活動就處于運(yùn)行狀態(tài)。

2.暫停狀態(tài)

當(dāng)一個活動不再處于棧頂時动遭,但仍可見芬探,這時活動就進(jìn)入了暫停狀態(tài)。處于暫停狀態(tài)的活動仍然是完全存活的厘惦,系統(tǒng)也不愿去回收這種活動偷仿,除了內(nèi)存極低的情況下,才會去考慮回收這種活動宵蕉。

3.停止?fàn)顟B(tài)

當(dāng)一個活動不再處于棧頂位置酝静,并完全不可見的時候,就進(jìn)入了停止?fàn)顟B(tài)羡玛。系統(tǒng)仍會保存活動相應(yīng)的狀態(tài)和成員變量别智,單著并不是完全可靠的,其他地方需要內(nèi)存時稼稿,處于停止?fàn)顟B(tài)的活動就有可能會被系統(tǒng)回收薄榛。

4.銷毀狀態(tài)

當(dāng)一個活動從返回棧中移除后就變成銷毀狀態(tài)。系統(tǒng)會傾向于回收處于這種狀態(tài)的活動让歼,從而保證手機(jī)的內(nèi)存充足敞恋。 ??

????????????????????????????????????生存期

onRestart()。這個方法在活動由停止?fàn)顟B(tài)變?yōu)檫\(yùn)動狀態(tài)之前調(diào)用谋右,也就是活動被重新啟動硬猫。

完整生存期:

onCreate()。這個方法會在活動第一次被創(chuàng)建時調(diào)用改执。我們應(yīng)該在這個方法中完成活動的初始化操作啸蜜,例如加載布局、綁定事件辈挂。

onDestroy()盔性。這個方法在活動被銷毀前調(diào)用,之后活動的狀態(tài)變?yōu)殇N毀狀態(tài)呢岗。

可見生存期:

onStrat()。這個方法在活動由不可見變?yōu)榭梢姇r調(diào)用蛹尝。

onStop()后豫。這個方法在活動完全不可見時被調(diào)用。該方法和onPause()的主要區(qū)別是突那,如果啟動新活動是對話框式的活動挫酿,那么onStop()方法不會被執(zhí)行,而onSause()方法會被執(zhí)行愕难。

前臺生存期:

onResume()早龟。這個方法在活動準(zhǔn)備好和用戶進(jìn)行交互時調(diào)用惫霸。此活動一定位于返回棧的棧頂,并且處于運(yùn)行狀態(tài)葱弟。

onPause()壹店。這個方法在系統(tǒng)準(zhǔn)備去啟動或者恢復(fù)另一個活動時被調(diào)用。我們通常會在這個方法中將一些消耗CPU的資源釋放掉芝加,以及保存一些關(guān)鍵數(shù)據(jù)硅卢,但這個方法的執(zhí)行速度一定要快,不然會影響新的棧頂活動的使用藏杖。

Android官方提供了一張活動生命周期的示意圖将塑。

活動的生命周期圖

活動的啟動模式:

standard是活動默認(rèn)的啟動模式,在不進(jìn)行顯式指定的情況下蝌麸,所以活動都會自動使用這種啟動模式点寥。對于使用stanard模式的活動,系統(tǒng)不會在乎這個活動是否已經(jīng)存在于返回棧中来吩,每次啟動都會創(chuàng)建該活動的一個新實(shí)例敢辩。

當(dāng)活動的啟動模式指定為singleTop,在啟動活動時如果發(fā)現(xiàn)返回棧的棧頂已經(jīng)是該活動误褪,則不會再創(chuàng)建新的活動實(shí)例责鳍。

當(dāng)活動的啟動模式指定為singleTask,每次啟動該活動時系統(tǒng)首先會在返回棧中檢查是否存在該活動的實(shí)例兽间,如果發(fā)現(xiàn)已經(jīng)存在則直接使用該實(shí)例历葛,并把在這個活動之上的所以活動統(tǒng)統(tǒng)出棧,如果沒有發(fā)現(xiàn)就會創(chuàng)建一個新的活動實(shí)例嘀略。

而singleInstance是最特殊最復(fù)雜的一種啟動模式了恤溶。需要我們慢慢積累。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帜羊,一起剝皮案震驚了整個濱河市咒程,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讼育,老刑警劉巖帐姻,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奶段,居然都是意外死亡饥瓷,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門痹籍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呢铆,“玉大人,你說我怎么就攤上這事蹲缠」卓耍” “怎么了悠垛?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長娜谊。 經(jīng)常有香客問我确买,道長,這世上最難降的妖魔是什么因俐? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任拇惋,我火速辦了婚禮,結(jié)果婚禮上抹剩,老公的妹妹穿的比我還像新娘撑帖。我一直安慰自己,他們只是感情好澳眷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布胡嘿。 她就那樣靜靜地躺著,像睡著了一般钳踊。 火紅的嫁衣襯著肌膚如雪衷敌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天拓瞪,我揣著相機(jī)與錄音缴罗,去河邊找鬼。 笑死祭埂,一個胖子當(dāng)著我的面吹牛面氓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蛆橡,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舌界,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泰演?” 一聲冷哼從身側(cè)響起呻拌,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎睦焕,沒想到半個月后藐握,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡垃喊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年猾普,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缔御。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖妇蛀,靈堂內(nèi)的尸體忽然破棺而出耕突,到底是詐尸還是另有隱情笤成,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布眷茁,位于F島的核電站炕泳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏上祈。R本人自食惡果不足惜培遵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望登刺。 院中可真熱鬧籽腕,春花似錦、人聲如沸纸俭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揍很。三九已至郎楼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窒悔,已是汗流浹背呜袁。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留简珠,地道東北人阶界。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像北救,于是被迫代替她去往敵國和親荐操。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容