《Android藝術(shù)開發(fā)探索》--Activity的生命周期

Activity的生命周期全面分析

正常情況下的生命周期

activity生命周期.png

(1)針對(duì)一個(gè)特定的Activity,第一次啟動(dòng)剿牺,回調(diào)如下:onCreate->onStart->onResume企垦。

(2)當(dāng)用戶打開新的Activity或者切換到桌面的時(shí)候,回調(diào)如下:onPause->onStop晒来。這里有一個(gè)特殊情況钞诡,如果新Activity采用透明主題,那么當(dāng)前Activity不會(huì)回調(diào)onStop湃崩。

(3)當(dāng)用戶在此回到原Activity時(shí)荧降,回調(diào)如下:onRestart->onStart->onResume。

(4)當(dāng)用戶按下back鍵回退時(shí)攒读,回調(diào)如下:onPause->onStop->onDestory朵诫。

(5)當(dāng)Activity被系統(tǒng)回收后再次打開,生命周期方法回調(diào)過程和(1)一樣薄扁,注意是生命周期方法一樣剪返,不代表所有過程都一樣。

(6)從整個(gè)生命周期來說邓梅,onCreate和onDestory是配對(duì)的脱盲,分別標(biāo)識(shí)著Activity的創(chuàng)建和銷毀,并且只可能有一次調(diào)用震放。從Activity是否可見來說宾毒,onStart和onStop是配對(duì)的,隨著用戶的操作或者設(shè)備屏幕的點(diǎn)亮和熄滅殿遂,這兩個(gè)方法可能被調(diào)用多次诈铛;從Activity是否在前臺(tái)來說,onResume和onPause是配對(duì)的墨礁,隨著用戶操作或者設(shè)備屏幕的點(diǎn)亮和熄滅幢竹,這兩個(gè)方法可能被調(diào)用多次。

(7)當(dāng)前Activity為A恩静,如果這時(shí)用戶打開一個(gè)新的ActivityB焕毫,那么回調(diào)如下:A-onResume->A-onPause->B-onCreate->B-onStart->B-onResume->A-onStop蹲坷。

異常情況下生命周期

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

在默認(rèn)情況下,如果我們的Activity不做特殊處理邑飒,那么當(dāng)前系統(tǒng)配置發(fā)生改變后循签,Activity就會(huì)被銷毀并重新創(chuàng)建。其onPause疙咸、onStop县匠、onDestory均會(huì)被調(diào)用,同時(shí)由于Activity是在異常情況下終止的撒轮,系統(tǒng)會(huì)調(diào)用onSaveInstanceState來保存當(dāng)前Activity的狀態(tài)乞旦。這個(gè)方法的調(diào)用時(shí)機(jī)是在onStop之前,它和onPause沒有既定的時(shí)序關(guān)系题山,它既可能在onPause之前也可能在之后兰粉。這個(gè)方法只會(huì)出現(xiàn)在Activity被異常終止的情況下,正常情況下系統(tǒng)不會(huì)調(diào)用此方法顶瞳。當(dāng)Activity被重新創(chuàng)建后玖姑,系統(tǒng)會(huì)調(diào)用onRestoreInstance,并且把Activity銷毀時(shí)onSaveInstanceState方法所保存的Bundle對(duì)象作為參數(shù)同時(shí)傳遞給onRestoreInstanceState和onCreate方法浊仆。因此我們可以通過onRestoreInstanceState和onCreate方法來判斷Activity是否被重建了客峭,如果被重建了豫领,那么我們就可以取出之前保存的數(shù)據(jù)并恢復(fù)從時(shí)序上來說抡柿,onRestoreInstanceState的調(diào)用時(shí)機(jī)在onStart之后。

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

a等恐、前臺(tái)Activity——正在和用戶交互的Activity洲劣,優(yōu)先級(jí)最高。

b课蔬、可見但非前臺(tái)Activity——比如Activity中彈出一個(gè)對(duì)話框囱稽,導(dǎo)致Activity可見但是位于后臺(tái)無法和用戶直接交互。

c二跋、后臺(tái)Activity——已經(jīng)被暫停的Activity战惊,比如執(zhí)行了onStop,優(yōu)先級(jí)最低扎即。

可以給Activity指定configChanges屬性吞获。防止Activity重建

android:configChanges="orientation|keyboardHidden"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谚鄙,隨后出現(xiàn)的幾起案子各拷,更是在濱河造成了極大的恐慌,老刑警劉巖闷营,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烤黍,死亡現(xiàn)場(chǎng)離奇詭異知市,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)速蕊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門嫂丙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人规哲,你說我怎么就攤上這事奢入。” “怎么了媳叨?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵腥光,是天一觀的道長(zhǎng)三椿。 經(jīng)常有香客問我胎围,道長(zhǎng)混槐,這世上最難降的妖魔是什么戏自? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任房维,我火速辦了婚禮醉冤,結(jié)果婚禮上韩容,老公的妹妹穿的比我還像新娘艺骂。我一直安慰自己汞舱,他們只是感情好伍纫,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著昂芜,像睡著了一般莹规。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泌神,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天良漱,我揣著相機(jī)與錄音,去河邊找鬼欢际。 笑死母市,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的损趋。 我是一名探鬼主播患久,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼浑槽!你這毒婦竟也來了蒋失?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤括荡,失蹤者是張志新(化名)和其女友劉穎高镐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畸冲,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嫉髓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年观腊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片算行。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡梧油,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出州邢,到底是詐尸還是另有隱情儡陨,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布量淌,位于F島的核電站骗村,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏呀枢。R本人自食惡果不足惜胚股,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望裙秋。 院中可真熱鬧琅拌,春花似錦、人聲如沸摘刑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枷恕。三九已至党晋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間活尊,已是汗流浹背隶校。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工漏益, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛹锰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓绰疤,卻偏偏與公主長(zhǎng)得像铜犬,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子轻庆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • 啟動(dòng)與銷毀Activity 不同于使用 main() 方法啟動(dòng)應(yīng)用的其他編程范例癣猾,Android 系統(tǒng)會(huì)通過調(diào)用對(duì)...
    安卓Boy閱讀 1,775評(píng)論 3 5
  • 啟動(dòng)與銷毀Activity 不同于使用 main() 方法啟動(dòng)應(yīng)用的其他編程范例,Android 系統(tǒng)會(huì)通過調(diào)用對(duì)...
    mouekz閱讀 652評(píng)論 0 0
  • 您的應(yīng)用中的Activity應(yīng)該做到如下需求: 1.用戶在使用應(yīng)用時(shí)接聽來電或切換到另一個(gè)應(yīng)用余爆,它不會(huì)崩潰纷宇。 2....
    正陽Android閱讀 534評(píng)論 1 0
  • Android的開發(fā)中我們大部分都是和Activity打交道,而想很好的運(yùn)用Activity首先必須要清楚Acti...
    云天隨筆閱讀 1,224評(píng)論 0 1
  • 這是我第三遍看《Android開發(fā)藝術(shù)探索》這本書了蛾方,從第一遍看的云里霧里像捶,第二遍略微明白之后上陕,我決定看第三遍,并...
    陳添閱讀 865評(píng)論 2 8