Android-activity的生命周期

一、初識Activity

在日常應用中Activity是與用戶交互的接口,它提供了一個用戶完成相關操作的窗口。當我們在開發(fā)中創(chuàng)建Activity后静檬,通過調(diào)用setContentView(View)方法來給該Activity指定一個布局界面,而這個界面就是提供給用戶交互的接口并级。Android系統(tǒng)中是通過Activity棧的方式來管理Activity的拂檩,而Activity自身則是通過生命周期的方法來管理的自己的創(chuàng)建與銷毀,既然如此嘲碧,現(xiàn)在我們就來看看Activity生命周期是如何運作的稻励。

二、Activity 的形態(tài)

Active/Running:

Activity處于活動狀態(tài)愈涩,此時Activity處于棧頂望抽,是可見狀態(tài),可與用戶進行交互钠署。

Paused:

當Activity失去焦點時,或被一個新的非全屏的Activity荒椭,或被一個透明的Activity放置在棧頂時谐鼎,Activity就轉化為Paused狀態(tài)。但我們需要明白趣惠,此時Activity只是失去了與用戶交互的能力狸棍,其所有的狀態(tài)信息及其成員變量都還存在,只有在系統(tǒng)內(nèi)存緊張的情況下味悄,才有可能被系統(tǒng)回收掉草戈。

Stopped:

當一個Activity被另一個Activity完全覆蓋時,被覆蓋的Activity就會進入Stopped狀態(tài)侍瑟,此時它不再可見唐片,但是跟Paused狀態(tài)一樣保持著其所有狀態(tài)信息及其成員變量。

Killed:

當Activity被系統(tǒng)回收掉時涨颜,Activity就處于Killed狀態(tài)费韭。

Activity會在以上四種形態(tài)中相互切換,至于如何切換庭瑰,這因用戶的操作不同而異星持。了解了Activity的4種形態(tài)后,我們就來聊聊Activity的生命周期弹灭。

三督暂、Activity 生命周期一覽

這里我們先來看看這一張經(jīng)典的生命周期流程圖:

四揪垄、典型的生命周期

所謂的典型的生命周期就是在有用戶參與的情況下,Activity經(jīng)歷從創(chuàng)建逻翁,運行饥努,停止,銷毀等正常的生命周期過程卢未。我們這里先來介紹一下幾個主要方法的調(diào)用時機肪凛,然后再通過代碼層面來驗證其調(diào)用流程。

onCreate: 該方法是在Activity被創(chuàng)建時回調(diào)辽社,它是生命周期第一個調(diào)用的方法伟墙,我們在創(chuàng)建Activity時一般都需要重寫該方法,然后在該方法中做一些初始化的操作滴铅,如通過setContentView設置界面布局的資源戳葵,初始化所需要的組件信息等。

onStart: 此方法被回調(diào)時表示Activity正在啟動汉匙,此時Activity已處于可見狀態(tài)拱烁,只是還沒有在前臺顯示,因此無法與用戶進行交互噩翠∠纷裕可以簡單理解為Activity已顯示而我們無法看見擺了。

onResume: 當此方法回調(diào)時伤锚,則說明Activity已在前臺可見擅笔,可與用戶交互了(處于前面所說的Active/Running形態(tài)),onResume方法與onStart的相同點是兩者都表示Activity可見屯援,只不過onStart回調(diào)時Activity還是后臺無法與用戶交互猛们,而onResume則已顯示在前臺,可與用戶交互狞洋。當然從流程圖弯淘,我們也可以看出當Activity停止后(onPause方法和onStop方法被調(diào)用),重新回到前臺時也會調(diào)用onResume方法吉懊,因此我們也可以在onResume方法中初始化一些資源庐橙,比如重新初始化在onPause或者onStop方法中釋放的資源。

onPause: 此方法被回調(diào)時則表示Activity正在停止(Paused形態(tài))借嗽,一般情況下onStop方法會緊接著被回調(diào)怕午。但通過流程圖我們還可以看到一種情況是onPause方法執(zhí)行后直接執(zhí)行了onResume方法,這屬于比較極端的現(xiàn)象了淹魄,這可能是用戶操作使當前Activity退居后臺后又迅速地再回到到當前的Activity郁惜,此時onResume方法就會被回調(diào)。當然,在onPause方法中我們可以做一些數(shù)據(jù)存儲或者動畫停止或者資源回收的操作兆蕉,但是不能太耗時羽戒,因為這可能會影響到新的Activity的顯示——onPause方法執(zhí)行完成后,新Activity的onResume方法才會被執(zhí)行虎韵。

onStop: 一般在onPause方法執(zhí)行完成直接執(zhí)行易稠,表示Activity即將停止或者完全被覆蓋(Stopped形態(tài)),此時Activity不可見包蓝,僅在后臺運行驶社。同樣地,在onStop方法可以做一些資源釋放的操作(不能太耗時)测萎。

onRestart:表示Activity正在重新啟動亡电,當Activity由不可見變?yōu)榭梢姞顟B(tài)時,該方法被回調(diào)硅瞧。這種情況一般是用戶打開了一個新的Activity時份乒,當前的Activity就會被暫停(onPause和onStop被執(zhí)行了),接著又回到當前Activity頁面時腕唧,onRestart方法就會被回調(diào)或辖。

onDestroy:此時Activity正在被銷毀,也是生命周期最后一個執(zhí)行的方法枣接,一般我們可以在此方法中做一些回收工作和最終的資源釋放颂暇。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市但惶,隨后出現(xiàn)的幾起案子耳鸯,更是在濱河造成了極大的恐慌,老刑警劉巖榆骚,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件片拍,死亡現(xiàn)場離奇詭異煌集,居然都是意外死亡妓肢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門苫纤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碉钠,“玉大人,你說我怎么就攤上這事卷拘『胺希” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵栗弟,是天一觀的道長污筷。 經(jīng)常有香客問我,道長乍赫,這世上最難降的妖魔是什么瓣蛀? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任陆蟆,我火速辦了婚禮,結果婚禮上惋增,老公的妹妹穿的比我還像新娘叠殷。我一直安慰自己,他們只是感情好诈皿,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布林束。 她就那樣靜靜地躺著,像睡著了一般稽亏。 火紅的嫁衣襯著肌膚如雪壶冒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天措左,我揣著相機與錄音依痊,去河邊找鬼。 笑死怎披,一個胖子當著我的面吹牛胸嘁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凉逛,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼性宏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了状飞?” 一聲冷哼從身側響起毫胜,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诬辈,沒想到半個月后酵使,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡焙糟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年口渔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片穿撮。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡缺脉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出悦穿,到底是詐尸還是另有隱情攻礼,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布栗柒,位于F島的核電站礁扮,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜太伊,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一负蠕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧倦畅,春花似錦遮糖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至芭概,卻和暖如春赛不,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背罢洲。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工踢故, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惹苗。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓殿较,卻偏偏與公主長得像,于是被迫代替她去往敵國和親桩蓉。 傳聞我的和親對象是個殘疾皇子淋纲,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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