Android生命周期

Android生命周期大概分為兩種情況:

  • 正常情況
    AndroidLifeCycle.jpg
    1. 第一次啟動,回調(diào)如下:onCreate --> onStart --> onResume.
    2. 退出或者銷毀Activity,回調(diào)如下:onPause --> onStop --> onDestroy.
    3. 打開一個新的Activity,舊Activity會先調(diào)用onPause(), 然后再啟動新的Activity∪回調(diào)如下:


      GotoNewActivity.png
    4. 從新Activity返回舊Activity時,也是新Activity先調(diào)用onPause(),然后等舊Activity回調(diào)onRestart() --> onStart() --> onResume()啟動后茶敏,新Activity再銷毀。


      ReturnToOldActivity.png
    5. 如果新Activity采用了透明主題缚俏,那么當前Activity不會回調(diào)onStop()惊搏。
  • 異常情況
    1. 資源相關的系統(tǒng)配置發(fā)生改變導致Activity被殺死并重建(例如旋轉屏幕引起系統(tǒng)配置發(fā)生改變),Activity先正常退出忧换,再重新創(chuàng)建恬惯。


      UnusuallyRestartActivity.png
    • 系統(tǒng)會調(diào)用onSaveInstanceState()保存當前Activity的狀態(tài),并在onStop()之前調(diào)用亚茬。
    • Activity重建時會調(diào)用onRestoreInstanceState()或者onCreate()恢復數(shù)據(jù)酪耳。onRestoreInstanceState()是在onStart()之后調(diào)用。
    • 對于onSaveInstanceState()的調(diào)用才写,個人理解為Activity除了即將被銷毀并且有機會重新顯示的情況下會被調(diào)用(比如手機旋轉引起Activity重建)葡兑,還有正常停止但也有機會重新顯示的情況下也會被調(diào)用(比如跳轉到里新的Activity)


      GotoNewActivity (2).png
    1. 資源內(nèi)存不足導致低優(yōu)先級的Activity被殺死,其數(shù)據(jù)存儲和恢復過程和上述完全一致赞草。

Activity按照優(yōu)先級從高到低讹堤,可以分以下三種:
(1). 前臺Activity —— 正在和用戶交互的Activity,優(yōu)先級最高厨疙。
(2). 可見但非前臺Activity —— 比如Activity中彈出了一個對話框洲守,導致Activity可見但是位于后臺無法和用戶直接交互。
(3). 后臺Activity —— 已經(jīng)暫停的Activity沾凄,比如執(zhí)行了onStop梗醇,優(yōu)先級最低。

  • 在AndroidManifest.xml文件里給Activity指定configChanges屬性可以設置它不用重新創(chuàng)建撒蟀。
android:configChages="orientation"
  • 常用的configChanges屬性有l(wèi)ocale叙谨、orientation和keyboardHidden。還需注意screenSize和smallestScreenSize保屯。
項目 含義
locale 設備的本地位置發(fā)生了改變手负,一般指切換了系統(tǒng)語言
keyboardHidden 鍵盤類型的可訪問性發(fā)生了改變涤垫,比如用戶調(diào)出了鍵盤
orientation 屏幕方向發(fā)生了改變,比如旋轉了手機屏幕
screenSize 當屏幕的尺寸信息發(fā)生了改變竟终,但旋轉設備屏幕時蝠猬,屏幕尺寸會發(fā)生變化,這個選線比較特殊统捶,它和編譯選項有關榆芦,但編譯選項中的minSdkVersion和tartgetSdkVersion均低于13時,此選項不會導致Activity重啟喘鸟,否則會導致Activity重啟(API 13新添加)
smallestScreenSize 設備的物理屏幕尺寸發(fā)生了改變匆绣,這個項目和屏幕方向沒關系,僅僅表示在實際的物理屏幕的尺寸改變的時候發(fā)生什黑,比如用戶切換到了外部的顯示設備.這個選項和screenSize一樣犬绒,但編譯選項中的minSdkVersion和tartgetSdkVersion均低于13時,此選項不會導致Activity重啟兑凿,否則會導致Activity重啟(API 13新添加)
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市茵瘾,隨后出現(xiàn)的幾起案子礼华,更是在濱河造成了極大的恐慌,老刑警劉巖拗秘,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件圣絮,死亡現(xiàn)場離奇詭異,居然都是意外死亡雕旨,警方通過查閱死者的電腦和手機扮匠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凡涩,“玉大人棒搜,你說我怎么就攤上這事』罨” “怎么了力麸?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長育韩。 經(jīng)常有香客問我克蚂,道長,這世上最難降的妖魔是什么筋讨? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任埃叭,我火速辦了婚禮,結果婚禮上悉罕,老公的妹妹穿的比我還像新娘赤屋。我一直安慰自己立镶,他們只是感情好,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布益缎。 她就那樣靜靜地躺著谜慌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪莺奔。 梳的紋絲不亂的頭發(fā)上欣范,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機與錄音令哟,去河邊找鬼恼琼。 笑死,一個胖子當著我的面吹牛屏富,可吹牛的內(nèi)容都是我干的晴竞。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼狠半,長吁一口氣:“原來是場噩夢啊……” “哼噩死!你這毒婦竟也來了?” 一聲冷哼從身側響起神年,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤已维,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后已日,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垛耳,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年飘千,在試婚紗的時候發(fā)現(xiàn)自己被綠了堂鲜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡护奈,死狀恐怖缔莲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情逆济,我是刑警寧澤酌予,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站奖慌,受9級特大地震影響抛虫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜简僧,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一建椰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧岛马,春花似錦棉姐、人聲如沸屠列。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至畅蹂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間苛让,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工湿诊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狱杰,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓厅须,卻偏偏與公主長得像仿畸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子朗和,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

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