Android 開發(fā)藝術(shù)探索筆記(一)之 Activity 的生命周期

一秽晚、Activity 的生命周期

1.典型情況下 Activity 的生命周期

在正常情況下斥废,Activity 會(huì)經(jīng)歷以下生命周期:

  • onCreate:表示 Activity 正在被創(chuàng)建,可以在這個(gè)方法做一些初始化的工作蚜退,如 setContentView 去加載布局資源闰靴、初始化一些參數(shù)。

  • onRestart:表示 Activity 正在重新啟動(dòng)钻注。一般情況下當(dāng) Activity 從不可見變?yōu)榭梢姇r(shí)蚂且, onRestart 就會(huì)被調(diào)用。這種情況一般是用戶按下了 Home 鍵切換到桌面或者用戶打開了一個(gè)新的 Activity 幅恋,這時(shí)當(dāng)前的 Activity 就會(huì)暫停杏死,執(zhí)行 onPause、onStop捆交。緊接著用戶又回到了這個(gè) Activity淑翼,這就會(huì)調(diào)用這個(gè) Activity 的 onRestart。

  • onStart:表示 Activity 正在被啟動(dòng)品追,這時(shí) Activity 已經(jīng)可見了玄括,但是還沒有出現(xiàn)在前臺(tái),還無法和用戶交互肉瓦≡饩可以理解成這時(shí) Activity 已經(jīng)顯示出來了,但是用戶看不到泞莉。

  • onResume:這時(shí) Activity 已經(jīng)可見哪雕,并出現(xiàn)在前臺(tái)可以和用戶交互。注意:onStart 和 onResume 都表示Activity 已經(jīng)可見鲫趁,但是 onStart 時(shí) Activity 還在后臺(tái)斯嚎,onResume 時(shí) Activity 才顯示在前臺(tái)。

  • onPause:表示 Activity 正在停止饮寞,緊接著調(diào)用 onStop 孝扛。此時(shí)可以做一些輕量級(jí)的存儲(chǔ)數(shù)據(jù)列吼、停止動(dòng)畫等工作幽崩,但注意不能太耗時(shí),因?yàn)楸仨氁?onPause 執(zhí)行完才能執(zhí)行新的 Activity 的 onCreate寞钥、onStart慌申、onResume 。所以重量級(jí)的操作盡量在 onStop 中操作。

  • onStop:表示 Activity 正在停止蹄溉,可以做一些稍微重量級(jí)的回收工作咨油,但是同樣不能太耗時(shí)。

  • onDestroy:表示 Activity 即將被銷毀柒爵,可以做一些回收工作和最終資源的釋放役电,比如移除廣播、反注冊(cè) EventBus棉胀。

下面是 Activity 的生命周期切換過程:

Activity 生命周期切換過程

2.異常情況下 Activity 的生命周期

  • 2.1 資源相關(guān)的系統(tǒng)配置發(fā)生改變導(dǎo)致 Activity 被殺死并重新創(chuàng)建

    當(dāng)系統(tǒng)配置發(fā)生改變法瑟,Activity 會(huì)被銷毀,其 onPause唁奢、onStop霎挟、onDestroy 方法會(huì)被調(diào)用,同時(shí)由于其是異常情況終止的麻掸,系統(tǒng)會(huì)調(diào)用 onSaveInstanceState 方法來保存當(dāng)前的狀態(tài)酥夭。這個(gè)方法是調(diào)用在 onStop 之前,但是和調(diào)用 onPause 沒有確定的先后關(guān)系脊奋。onSaveInstanceState 方法只有在異常終止才會(huì)被調(diào)用熬北,正常情況不會(huì)調(diào)用這個(gè)方法。

    當(dāng) Activity 被重新創(chuàng)建后狂魔,系統(tǒng)會(huì)調(diào)用 onRestoreInstanceState 蒜埋,并且把 Activity 銷毀時(shí) onSaveInstanceState 方法保存的 Bundle 對(duì)象作為參數(shù)傳給 onRestoreInstanceState 和 onCreate 方法。所以我們能通過 onRestoreInstanceState 和 onCreate 方法判斷Activity 是否被重建了最楷。如果重建了整份,就取出之前保存的數(shù)據(jù)恢復(fù)視圖狀態(tài),onRestoreInstanceState 的調(diào)用時(shí)機(jī)在 onStart 之后籽孙。

  • 2.2 資源內(nèi)存不足導(dǎo)致低優(yōu)先級(jí)的 Activity 被殺死

    當(dāng)系統(tǒng)內(nèi)存不足時(shí)烈评,系統(tǒng)會(huì)按照優(yōu)先級(jí)高低優(yōu)先殺死優(yōu)先級(jí)低的 Activity 所在的進(jìn)程,并后續(xù)通過 onSaveInstanceState 和 onRestoreInstanceState 來存儲(chǔ)和恢復(fù)數(shù)據(jù)犯建。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末讲冠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子适瓦,更是在濱河造成了極大的恐慌竿开,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玻熙,死亡現(xiàn)場(chǎng)離奇詭異否彩,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)嗦随,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門列荔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事贴浙∩巴蹋” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵崎溃,是天一觀的道長(zhǎng)蜻直。 經(jīng)常有香客問我,道長(zhǎng)袁串,這世上最難降的妖魔是什么袭蝗? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任铜幽,我火速辦了婚禮女蜈,結(jié)果婚禮上册养,老公的妹妹穿的比我還像新娘棋弥。我一直安慰自己攘乒,他們只是感情好愿汰,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布裁眯。 她就那樣靜靜地躺著生年,像睡著了一般啤咽。 火紅的嫁衣襯著肌膚如雪晋辆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天宇整,我揣著相機(jī)與錄音瓶佳,去河邊找鬼。 笑死鳞青,一個(gè)胖子當(dāng)著我的面吹牛霸饲,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播臂拓,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼厚脉,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了胶惰?” 一聲冷哼從身側(cè)響起傻工,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孵滞,沒想到半個(gè)月后中捆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坊饶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年泄伪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幼东。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡臂容,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出根蟹,到底是詐尸還是另有隱情脓杉,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布简逮,位于F島的核電站球散,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏散庶。R本人自食惡果不足惜蕉堰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望悲龟。 院中可真熱鬧屋讶,春花似錦、人聲如沸须教。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)轻腺。三九已至乐疆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贬养,已是汗流浹背挤土。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留误算,地道東北人仰美。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像儿礼,于是被迫代替她去往敵國(guó)和親筒占。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349