Activity生命周期及方法

當(dāng)單獨一個Activity啟動時,任何啟動模式~

onCreate()

在Activity創(chuàng)建時調(diào)用堤器,通常做一些初始化設(shè)置陋率。
這個方法只會被調(diào)用一次

setContentView()
為Activity設(shè)置所要使用的布局文件

onContentChanged()
在setContentView()執(zhí)行完成之后回調(diào)

onStart()

當(dāng)Activity可見未獲得用戶焦點不能交互時系統(tǒng)會調(diào)用

onPostCreate()
Activity徹底運行起來之后的回調(diào) - 通常用不到

onResume()

當(dāng)Activity可見且獲得用戶焦點能交互時系統(tǒng)會調(diào)用

onPostResume()
activity真正獲取焦點之后回調(diào),此方法在onResume()方法之后 - 通常用不到

onAttachedToWindow()
在第一次調(diào)用onDraw前調(diào)用的吧兔,也就是我們寫的View在沒有繪制出來時調(diào)用的,但只會調(diào)用一次竭望。

onCreateOptionsMenu();
onPrepareOptionsMenu();
onOptionsItemSelected();
onMenuOpened();
onOptionsMenuClosed();

與toolBar右側(cè)的菜單相關(guān)的方法

onRestart()

當(dāng)Activity已經(jīng)停止然后重新被啟動時系統(tǒng)會調(diào)用

onPause()

在當(dāng)前Activity被其他Activity覆蓋或鎖屏?xí)r調(diào)用

onStop()

在Activity對用戶不可見時調(diào)用

onDestroy()

在Activity銷毀時調(diào)用

onDetachedFromWindow()
銷毀View的時候底瓣,這個View不再顯示,這個時候我們就可以在這個方法做一些收尾工作扭弧,如:取消廣播注冊阎姥,子線程等

onCreate和onStart之間有什么區(qū)別?
可見與不可見的區(qū)別鸽捻。前者不可見呼巴,后者可見。
onCreate方法只在Activity創(chuàng)建時執(zhí)行一次御蒲,而onStart方法在Activity中被多次調(diào)用衣赶。onCreate能做的事onStart其實都能做,但是onstart能做的事onCreate卻未必適合做厚满。如前文所說的府瞄,setContentView和資源初始化在兩者都能做,然而想動畫的初始化在onStart中做比較好碘箍。

onStart方法和onResume方法有什么區(qū)別遵馆?
是否在前臺。onStart方法中Activity可見但不在前臺敲街,不可交互团搞,而在onResume中在前臺。
職責(zé)不同多艇,onStart方法中主要還是進行初始化工作逻恐,而onResume方法,根據(jù)官方的建議峻黍,可以做開啟動畫和獨占設(shè)備的操作复隆。

onPause方法和onStop方法有什么區(qū)別?
是否可見姆涩。onPause時Activity可見挽拂,onStop時Activity不可見,但Activity對象還在內(nèi)存中骨饿。
在系統(tǒng)內(nèi)存不足的時候可能不會執(zhí)行onStop方法亏栈,因此程序狀態(tài)的保存、獨占設(shè)備和動畫的關(guān)閉宏赘、以及一些數(shù)據(jù)的保存最好在onPause中進行绒北,但要注意不能太耗時。

額外的方法

//獲取Launcher第一幀
@Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
    }

onNewIntent()
當(dāng)一個Activity被重新啟動時候,如果該Activity沒有被重新創(chuàng)建,那么就會調(diào)用此方法

onLowMemory()
onTrimMemory()

當(dāng)系統(tǒng)內(nèi)存不夠的時候會調(diào)用,我們可以在這兩個方法中手動釋放資源

startActivForResult()
當(dāng)新Activity關(guān)閉后察署,新Activity返回的數(shù)據(jù)通過Intent進行傳遞闷游,android平臺會調(diào)用前面Activity 的onActivityResult()方法,把存放了返回數(shù)據(jù)的Intent作為第三個輸入?yún)?shù)傳入,在onActivityResult()方法中使用第三個輸入?yún)?shù)可以取出新Activity返回的數(shù)據(jù)脐往。

跳轉(zhuǎn)standard

假設(shè)A跳B
B的啟動模式是standard

A onPause()
B onCreate()--onResume()
A onStop()

B返回到A

B onPause()
A onRestart()--onResume()
B onStop()---onDestory()

結(jié)論:
先將原來的Activity暫停(onPause),然后將將要展示的Activity獲取焦點,最后將原Activity隱藏獲銷毀

跳轉(zhuǎn)singleTop

假設(shè)A跳B
B的啟動模式是singleTop

B已經(jīng)在棧頂
B onPause()--onNewIntent()--onResume()
B不在棧頂
B 創(chuàng)建新的Activity

跳轉(zhuǎn)singleTask

假設(shè)A跳B
B的啟動模式是singleTask

B已經(jīng)在棧頂
B onPause()--onNewIntent()--onResume()
B不在棧頂
先銷毀中間所有的Activity--頂層onPause()--B onNewIntent()--onRestart()-- onStart()--onResume()--頂層Activity銷毀

Acticvity的啟動模式會影響結(jié)果

startActivForResult--onActivityResult()--onRestart()

橫豎屏切換

在不同的真機上 onStop() 和 onSaveInstanceState() 的執(zhí)行順序會有差別

onPause()

onStop()

onSaveInstanceState()
當(dāng)某個activity變得"容易"被系統(tǒng)銷毀時休吠,該activity的onSaveInstanceState()就會被執(zhí)行,除非該activity是被用戶主動銷毀的业簿,例如當(dāng)用戶按BACK鍵的候瘤礁。 如果我們需要覆寫onSaveInstanceState()方法, 一般會在第一行代碼中調(diào)用該方法的默認實現(xiàn):super.onSaveInstanceState(outState)。與此同時辖源,當(dāng)我們需要保存額外的數(shù)據(jù)時, 就需要覆寫onSaveInstanceState()方法蔚携。

onDestroy()

onCreate()

onStart()

onRestoreInstanceState()
取出我們在onSaveInstanceState()中所保存的值 我們的onCreate()中super.onCreate(savedInstanceState);
這個savedInystanceState對象也可以取出值

onResume()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末克饶,一起剝皮案震驚了整個濱河市酝蜒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亡脑,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡喷斋,警方通過查閱死者的電腦和手機蒜茴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門星爪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來顽腾,“玉大人,你說我怎么就攤上這事诺核〕ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵窖杀,是天一觀的道長漓摩。 經(jīng)常有香客問我,道長陈瘦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮痊项,結(jié)果婚禮上锅风,老公的妹妹穿的比我還像新娘。我一直安慰自己鞍泉,他們只是感情好皱埠,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咖驮,像睡著了一般边器。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上托修,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天忘巧,我揣著相機與錄音,去河邊找鬼睦刃。 笑死砚嘴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的涩拙。 我是一名探鬼主播际长,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼兴泥!你這毒婦竟也來了工育?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤搓彻,失蹤者是張志新(化名)和其女友劉穎如绸,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體好唯,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡竭沫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了骑篙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜕提。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖靶端,靈堂內(nèi)的尸體忽然破棺而出谎势,到底是詐尸還是另有隱情,我是刑警寧澤杨名,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布脏榆,位于F島的核電站,受9級特大地震影響台谍,放射性物質(zhì)發(fā)生泄漏须喂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望坞生。 院中可真熱鬧仔役,春花似錦、人聲如沸是己。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卒废。三九已至沛厨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摔认,已是汗流浹背逆皮。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留级野,地道東北人页屠。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蓖柔,于是被迫代替她去往敵國和親辰企。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348

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

  • Activity https://developer.android.com/guide/components/a...
    XLsn0w閱讀 701評論 0 4
  • Activity是一個應(yīng)用組件况鸣,用戶可與其提供的屏幕進行交互牢贸,以執(zhí)行撥打電話、拍攝照片镐捧、發(fā)送電子郵件或查看地圖等操...
    進攻的螞蟻閱讀 1,153評論 0 0
  • 本節(jié)例程下載地址:WillFlowLifeCycle 一潜索、Activity詳解 (1)Activity是什么? 其...
    常思行閱讀 1,291評論 0 0
  • 在前面的文章里我們知道了 Activity 是一個應(yīng)用組件懂酱,用戶可與其提供的屏幕進行交互竹习,以執(zhí)行撥打電話、拍攝照片...
    常思行閱讀 924評論 1 1
  • 生活的激情來源于哪里?就是我們太陽所落的星座和宮位列牺,如果你了解占星整陌,就會一目了然地看到自己最熱衷的事物,...
    Linda江云閱讀 344評論 0 1