Activity生命周期

先上圖


activity_lifecycle.png

由圖可知一個Activity的完整生命周期大致如下:
onCreate->onStart->onResume->onPause->onStop->onDestroy实柠,系統(tǒng)會在Activity進入相應狀態(tài)時調(diào)用相應方法携取,下面一個一個看看這些方法:

  • ****onCreate()****
    我們必須實現(xiàn)這個方法察净,系統(tǒng)在創(chuàng)建Activity的時候會調(diào)用這個方法厦酬。在這個方法中刺彩,我們一般會做些在整個生命周期中只會執(zhí)行一次的初始化邏輯锄禽。這個方法包含一個Bundle對象嘿般,這個對象存儲Activity被內(nèi)存殺死時的所有狀態(tài)和對象,當?shù)谝淮芜M入這個Activity時力麸,這個Bundle對象是null可款。
  • ****onStart()****
    當系統(tǒng)執(zhí)行這個方法后,Activity就對用戶可見了克蚂,但是這個時候用戶還不能操作界面闺鲸,在這個方法中一般會注冊廣播接收者。
  • ****onResume()****
    當執(zhí)行完這個方法后埃叭,這個時候用戶已經(jīng)能操作界面了摸恍,并且系統(tǒng)會保持這個狀態(tài)除非其他界面獲取了焦點(打開其他activity等)。
  • ****onPause()****
    系統(tǒng)會在用戶離開activity時調(diào)用這個方法(然而這不意味著activity被銷毀了)赤屋。我們可以使用這個方法去釋放資源立镶,一般在 onResume()初始化的資源都應該在這里銷毀。
    onPause()方法的執(zhí)行是十分短的类早,所以在這里不適合做保存數(shù)據(jù)的操作媚媒。由于這個原因,我們不能在這里保存應用數(shù)據(jù)涩僻,使用網(wǎng)絡請求缭召,或者執(zhí)行數(shù)據(jù)庫操作。
  • ****onStop()****
    當應用對用戶來說不可見時會調(diào)用這個方法逆日,舉個例子恼琼,當另外一個activity完全遮擋住當前activity時,當前activity就會執(zhí)行這個方法屏富。在這個方法中晴竞,應用應該釋放大多數(shù)不再需要的資源,因為應用有可能不會執(zhí)行onDestroy方法狠半。
  • ****onDestroy()****
    當activity被銷毀之前調(diào)用噩死。這是activity收到的最后一次調(diào)用颤难。當用戶執(zhí)行finish()或者系統(tǒng)殺死進程的時候調(diào)用。當屏幕方向改變時也有可能會執(zhí)行這個方法已维。

在某些情況下的生命周期

  • ****正常跳轉****
    描述:打開Activity行嗤,然后由A跳轉到Activity B,然后再結束B垛耳。
    結果:
    首先打開A:A.onCreate->A.onStart->A.onResume
    A跳轉到B:A.onPause->B.onCreate->B.onStart->B.onResume->A.onStop
    結束B:B.onPause->B.onStop->B.onDestroy->A.onStart->A.onResume
    結論:在進入新的Activity時會先執(zhí)行本Activity的onPause方法栅屏,然后在新Activity完全可交互時執(zhí)行onStop方法。
  • ****系統(tǒng)彈出AlertDialog(非全屏)****
    描述:在Activity A中打開AlertDialog dialog,然后取消對話框
    結果:打開dialog和關閉dialog未影響生命周期堂鲜。
    結論:AlertDialog的顯示隱藏不影響生命周期栈雳。
  • ****打開Dialog樣式的Activity(非全屏)****
    描述:打開Activity,在Activity A中打開android:theme為對話框的Activity B缔莲,然后關閉B
    首先打開A:A.onCreate->A.onStart->A.onResume
    A跳轉到B:A.onPause->B.onCreate->B.onStart->B.onResume
    結束B:B.onPause->B.onStop->B.onDestroy->A.onResume
    結論:打開對話框樣式的Activity后本Activity只執(zhí)行onPause方法哥纫,并不會執(zhí)行onStop方法
  • ****屏幕旋轉****
    屏幕旋轉分兩種情況
    1.未在Manifest文件中配置activity的configChange屬性。
    描述:打開默認豎屏activity后旋轉屏幕至橫屏
    生命周期:onCreate->onStart->onResume->onPause->onStop->onDestroy->onCreate->onStart->onResume
    結論:未配置configChange屬性時旋轉屏幕會銷毀Activity并重新創(chuàng)建
    2.覆蓋onConfigurationChanged方法并在Manifest中配置activity的configChange屬性如下
    android:configChanges="screenSize|orientation|keyboardHidden"
    描述:打開默認豎屏activity后旋轉屏幕至橫屏
    生命周期:onCreate->onStart->onResume->onConfigurationChanged
    結論:如果配置了configChange屬性并覆蓋了onConfigurationChanged方法痴奏,系統(tǒng)在旋轉屏幕的時候不會銷毀activity蛀骇,而是調(diào)用onConfigurationChanged方法
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市读拆,隨后出現(xiàn)的幾起案子擅憔,更是在濱河造成了極大的恐慌,老刑警劉巖檐晕,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暑诸,死亡現(xiàn)場離奇詭異,居然都是意外死亡棉姐,警方通過查閱死者的電腦和手機屠列,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門啦逆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伞矩,“玉大人,你說我怎么就攤上這事夏志∧死ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵沟蔑,是天一觀的道長湿诊。 經(jīng)常有香客問我,道長瘦材,這世上最難降的妖魔是什么厅须? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮食棕,結果婚禮上朗和,老公的妹妹穿的比我還像新娘错沽。我一直安慰自己,他們只是感情好眶拉,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布千埃。 她就那樣靜靜地躺著,像睡著了一般忆植。 火紅的嫁衣襯著肌膚如雪放可。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天朝刊,我揣著相機與錄音耀里,去河邊找鬼。 笑死坞古,一個胖子當著我的面吹牛备韧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播痪枫,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼织堂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奶陈?” 一聲冷哼從身側響起易阳,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吃粒,沒想到半個月后潦俺,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡徐勃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年事示,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片僻肖。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡肖爵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出臀脏,到底是詐尸還是另有隱情劝堪,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布揉稚,位于F島的核電站秒啦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏搀玖。R本人自食惡果不足惜余境,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧芳来,春花似錦暴氏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侥涵,卻和暖如春沼撕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芜飘。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工务豺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嗦明。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓笼沥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親娶牌。 傳聞我的和親對象是個殘疾皇子奔浅,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

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