Android四大組件之Activity(一)

從接觸Android到現(xiàn)在鸭巴,最常掛在嘴邊的就是Android四大組件鹃祖。下面我談?wù)剬?duì)四大組件的理解普舆,今天先給大家介紹一下Activity

1.1Activity的四種狀態(tài)

running/paused/stopped/killed

running:當(dāng)前Activity正處于運(yùn)行狀態(tài)池磁,指的是當(dāng)前Activity獲取了焦點(diǎn)楷兽。

paused:當(dāng)前Activity正處于暫停狀態(tài),指的是當(dāng)前Activity失去焦點(diǎn)端考,此時(shí)的Activity并沒有被銷毀揭厚,內(nèi)存里面的成員變量却特,狀態(tài)信息等仍然存在,當(dāng)然這個(gè)Activity也仍然可見筛圆。

stopped:與paused狀態(tài)相似裂明,stopped狀態(tài)的Activity是完全不可見的,但是內(nèi)存里面的成員變量太援,狀態(tài)信息等仍然存在闽晦,但是也沒有被銷毀。

killed:已經(jīng)被銷毀的Activity才處于killed狀態(tài)提岔,它的內(nèi)存里面的成員變量仙蛉,狀態(tài)信息等都會(huì)被一并回收。

1.2 Activity的生命周期


1).onCreate方法

當(dāng)Activity第一次創(chuàng)建的時(shí)候調(diào)用碱蒙。這個(gè)方法主要給我們提供了初始化操作荠瘪,如:創(chuàng)建view,綁定數(shù)據(jù)等哀墓。另外這個(gè)方法里還有一個(gè)bundle參數(shù)褒搔,這個(gè)參數(shù)可以用來恢復(fù)數(shù)據(jù)等。

2).onStart方法

onCreate方法執(zhí)行以后磕瓷,onStart方法緊接著開始執(zhí)行。該方法表示Activity已經(jīng)顯示了符匾,但是還不能與用戶交互焰坪。

3).onResume方法

調(diào)用onResume方法后,Activity就可以與用戶進(jìn)行交互,此時(shí)Activity就位于Activity 棧的棧頂瘟仿。

4).onPause方法

調(diào)用onPause方法,Activity失去焦點(diǎn)衣洁,無法再與用戶交互环凿,但是依舊可見。

5).onStop方法

Activity不可見考赛,進(jìn)入后臺(tái)悔雹。

6).onRestart方法

Activity由不可見變?yōu)榭梢娛钦{(diào)用該方法梯找。

7).onDestory方法

Activity被銷毀久免。

1.3特殊生命周期分析

1).啟動(dòng)Activity鸽捻;回到桌面;再次啟動(dòng)Activity

onCreate---->onStart---->onResume

onPause---->onStop

onRestart---->onStart---->onResume

2).按Back鍵退出activity

onPause---->onStop---->onDestory

3).從activityA跳轉(zhuǎn)到activityB中

onPause---->onCreate---->onStart---->onResume---->onStop

1.4與生命周期相關(guān)的重要方法

1.4.1 onSaveInstanceState與onRestoreInstanceState方法

activity通過onSaveInstanceState()方法保存activity的狀態(tài)遵馆,在onCreate或者onRestoreInstanceState方法恢復(fù)狀態(tài)逻恐,如果是通過onRestart方法前端運(yùn)行的話,只會(huì)執(zhí)行onSaveInstanceState方法

1.4.2 onConfigurationChanged方法

橫豎屏切換

https://blog.csdn.net/wulianghuan/article/details/8603982

2.Activity啟動(dòng)模式

Activity的啟動(dòng)模式包含四種亏栈,分別是:standard黎侈、singleTop、singleTask脐往、singleInstance休吠。

1)standard模式

這是Activity的標(biāo)準(zhǔn)啟動(dòng)模式,如果我們不對(duì)Activity做任何特殊處理的情況下就默認(rèn)為該模式啟動(dòng),所以該模式并不需要在manifest或者Intent里進(jìn)行指定梅尤。不管Activity實(shí)例在任務(wù)棧中是否存在矾湃,每次打開Activity都會(huì)在任務(wù)棧中新建一個(gè)Activity實(shí)例拍屑。

2)singleTop模式

棧頂復(fù)用模式星爪,該模式簡單來說,啟動(dòng)的Activity已經(jīng)在任務(wù)棧的棧頂話痊项,那么再啟動(dòng)這個(gè)Activity的時(shí)候就不會(huì)創(chuàng)建該實(shí)例锅风,否則就會(huì)創(chuàng)建該實(shí)例。

3)singleTask模式

棧內(nèi)復(fù)用模式鞍泉,singleTask指的是一個(gè)任務(wù)棧中只能存在一個(gè)這樣的Acitivity皱埠。

4)singleInstance模式

單實(shí)例模式,該模式是四個(gè)模式當(dāng)中最為特殊的一個(gè)咖驮,設(shè)置了該模式啟動(dòng)的Acitivyt會(huì)在一個(gè)獨(dú)立的任務(wù)棧中開啟边器,同事該任務(wù)棧有且只有一個(gè)這樣的Activity實(shí)例。

singleInstace與singleTask的區(qū)別在于:singleTask啟動(dòng)的Activity在系統(tǒng)層面上來說是可以有多個(gè)實(shí)例的托修。但如果該ActivityA是singleInstance模式的話忘巧,那么無論有多少個(gè)應(yīng)用程序調(diào)用它,它都只可能在系統(tǒng)中存在一個(gè)實(shí)例同時(shí)該實(shí)例還是位于它自己的一個(gè)單獨(dú)的任務(wù)棧中睦刃。

如何指定啟動(dòng)模式

1)我們可以在manifest里通過Activity的launchMode進(jìn)行指定

2).通過Intent中setFlags來指定啟動(dòng)模式

1.Intent.FLAG_ACTIVITY_NEW_TASK

2.Intent.FLAG_ACTIVITY_SINGLE_TOP

3.Intent.FLAG_ACTIVITY_CLEAR_TOP

4.Intent.FLAG_ACTIVITY_NO_HISTORY





Android四大組件之BroadcastReceiver(二)

http://www.reibang.com/writer#/notebooks/24597241/notes/28897568

Android四大組件之Service(三)

http://www.reibang.com/writer#/notebooks/24597241/notes/28900282

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末砚嘴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子涩拙,更是在濱河造成了極大的恐慌际长,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兴泥,死亡現(xiàn)場離奇詭異工育,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)搓彻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門如绸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嘱朽,“玉大人,你說我怎么就攤上這事怔接≡锍幔” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蜕提,是天一觀的道長森书。 經(jīng)常有香客問我,道長谎势,這世上最難降的妖魔是什么凛膏? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮脏榆,結(jié)果婚禮上猖毫,老公的妹妹穿的比我還像新娘。我一直安慰自己须喂,他們只是感情好吁断,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坞生,像睡著了一般仔役。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上是己,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天又兵,我揣著相機(jī)與錄音,去河邊找鬼卒废。 笑死沛厨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摔认。 我是一名探鬼主播逆皮,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼参袱!你這毒婦竟也來了电谣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤蓖柔,失蹤者是張志新(化名)和其女友劉穎辰企,沒想到半個(gè)月后风纠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體况鸣,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年竹观,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了镐捧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片潜索。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖懂酱,靈堂內(nèi)的尸體忽然破棺而出竹习,到底是詐尸還是另有隱情,我是刑警寧澤列牺,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布整陌,位于F島的核電站,受9級(jí)特大地震影響瞎领,放射性物質(zhì)發(fā)生泄漏泌辫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一九默、第九天 我趴在偏房一處隱蔽的房頂上張望震放。 院中可真熱鬧,春花似錦驼修、人聲如沸殿遂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墨礁。三九已至,卻和暖如春耳峦,著一層夾襖步出監(jiān)牢的瞬間饵溅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工妇萄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜕企,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓冠句,卻偏偏與公主長得像轻掩,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子懦底,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • 1. Activity是什么唇牧?2. 生命周期1). Activity跳轉(zhuǎn)2). 從后臺(tái)啟動(dòng)3). 橫豎屏切換3. ...
    IT老五閱讀 426評(píng)論 0 3
  • 【Android Activity】 什么是 Activity? 四大組件之一,通常一個(gè)用戶交互界面對(duì)應(yīng)一個(gè) ac...
    Rtia閱讀 3,810評(píng)論 3 18
  • 關(guān)于為什么要寫屬于自己的博客,我在前一篇文章中也提到了聚唐。主要是歸納自己這一個(gè)時(shí)期所學(xué)到的知識(shí)丐重,幫助自己更好的理解,...
    Kevin_Jern閱讀 897評(píng)論 0 9
  • 你說過的哪個(gè)謊讓人難過得無法忘記杆查。 我和陸璃兩個(gè)人在夜市街的燒烤攤上吃著燒烤喝著啤酒扮惦,滿地都是亂七八糟的竹簽和紙巾...
    西北西貝閱讀 758評(píng)論 11 13
  • 今天星期六,手癢癢想畫畫亲桦,于是……就有了…… 水手服崖蜜。早就想自己做一件穿浊仆,可是一直沒時(shí)間。也只能穿到畫中的人物身上...
    理想國民閱讀 269評(píng)論 0 0