Android Activity 基礎(chǔ)介紹

^Activity的生命周期

protected void onCreate(Bundle savedInstanceState);?

protected void onRestart();?

protected void onStart();?

protected void onResume();?

protected void onPause();?

protected void onStop();?

protected void onDestory();?

以上為Activity生命周期中的各個時期的回調(diào)方法,在不同的方法中我們可以執(zhí)行不同的邏輯呐萌。

^Activity的啟動模式

activity啟動時可以設(shè)置不同的啟動模式(launchMode),主要是:

standrand:這個模式是默認的啟動模式谊娇,即標準模式肺孤,在不指定啟動模式的前提下,系統(tǒng)默認使用該模式啟動Activity济欢,每次啟動一個Activity都會重寫創(chuàng)建一個新的實例赠堵,不管這個實例存不存在,這種模式下法褥,誰啟動了該模式的Activity茫叭,該Activity就屬于啟動它的Activity的任務(wù)棧中。這個Activity它的onCreate()半等,onStart()揍愁,onResume()方法都會被調(diào)用呐萨。

singleTop:這個模式下,如果新的activity已經(jīng)位于棧頂莽囤,那么這個Activity不會被重寫創(chuàng)建谬擦,同時它的onNewIntent方法會被調(diào)用,通過此方法的參數(shù)我們可以去除當前請求的信息朽缎。如果棧頂不存在該Activity的實例惨远,則情況與standard模式相同。需要注意的是這個Activity它的onCreate()话肖,onStart()方法不會被調(diào)用北秽,因為它并沒有發(fā)生改變。(

singleTop模式分3種情況:

當前棧中已有該Activity的實例并且該實例位于棧頂時狼牺,不會新建實例羡儿,而是復(fù)用棧頂?shù)膶嵗⑶視ntent對象傳入是钥,回調(diào)onNewIntent方法

當前棧中已有該Activity的實例但是該實例不在棧頂時掠归,其行為和standard啟動模式一樣,依然會創(chuàng)建一個新的實例

當前棧中不存在該Activity的實例時悄泥,其行為同standard啟動模式)


singleTask:這個模式十分復(fù)雜虏冻,有各式各樣的組合。在這個模式下弹囚,如果棧中存在這個Activity的實例就會復(fù)用這個Activity厨相,不管它是否位于棧頂,復(fù)用時鸥鹉,會將它上面的Activity全部出棧蛮穿,并且會回調(diào)該實例的onNewIntent方法。其實這個過程還存在一個任務(wù)棧的匹配毁渗,因為這個模式啟動時践磅,會在自己需要的任務(wù)棧中尋找實例,這個任務(wù)棧就是通過taskAffinity屬性指定灸异。如果這個任務(wù)棧不存在府适,則會創(chuàng)建這個任務(wù)棧

singleInstance?:該模式具備singleTask模式的所有特性外,與它的區(qū)別就是肺樟,這種模式下的Activity會單獨占用一個Task棧檐春,具有全局唯一性,即整個系統(tǒng)中就這么一個實例么伯,由于棧內(nèi)復(fù)用的特性疟暖,后續(xù)的請求均不會創(chuàng)建新的Activity實例,除非這個特殊的任務(wù)棧被銷毀了。以singleInstance模式啟動的Activity在整個系統(tǒng)中是單例的俐巴,如果在啟動這樣的Activiyt時朋贬,已經(jīng)存在了一個實例,那么會把它所在的任務(wù)調(diào)度到前臺窜骄,重用這個實例。


等四種啟動模式摆屯,不同的啟動模式在啟動Activity時會執(zhí)行不同的邏輯邻遏,系統(tǒng)會按不同的啟動模式將Activity存放到不同的activity棧中。

^Activity的啟動進程

在Manifest.xml中定義Activity的時候虐骑,Activity默認是屬于進程名稱為包名的進程的准验,當然這時候是可以指定Activity的啟動進程,所以在Activity啟動時首先會檢測當前Activity所屬的進程是否已經(jīng)啟動廷没,若進程沒有啟動糊饱,則首先會啟動該進程,并在該進程啟動之后才會執(zhí)行Activity的啟動過程.

Intent啟動Activity的方式

Intent啟動Activity分為兩種颠黎,顯示啟動和隱士啟動另锋,顯示啟動就是在初始化Intent對象的時候直接引用需要啟動的Activity的字節(jié)碼,顯示引用的好處就是可以直接告訴Intent對象啟動的Activity對象不需要執(zhí)行intent filter索引需要啟動哪一個Activity狭归,但是顯示引用不能啟動其他進程的Activity對象夭坪,因為無法獲取其他進程的Activity對象的字節(jié)碼,而隱式啟動則可以通過配置Intent Filter啟動其他進程的Activity對象过椎,因此在應(yīng)用內(nèi)室梅,我們一般都是使用顯示啟動的方式啟動Activity,而如果需要啟動其他應(yīng)用的Activity時疚宇,一般使用隱式啟動的方式亡鼠。

Intent啟動多個Activity的方式

1.利用startActivities(Intent[] intents);

Intent i1= new Intent(this, Activity1.class);

Intent i2= new Intent(this, Activity2.class);

Intent[] intents = new Intent[2];

intents[0] = i1;

intents[1] = i2;

startActivities(intents);

2.?PendingIntent

Intent i1= new Intent(this, Activity1.class);

Intent i2= new Intent(this, Activity2.class);

Intent[] intents = new Intent[2];

intents[0] = i1;

intents[1] = i2;

PendingIntent mPendingIntent = PendingIntent.getActivities(this, 0, intents, 0);try {

? ? mPendingIntent.send();

} catch (PendingIntent.CanceledException e) {

? ? e.printStackTrace();

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市敷待,隨后出現(xiàn)的幾起案子间涵,更是在濱河造成了極大的恐慌,老刑警劉巖讼撒,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浑厚,死亡現(xiàn)場離奇詭異,居然都是意外死亡根盒,警方通過查閱死者的電腦和手機钳幅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炎滞,“玉大人敢艰,你說我怎么就攤上這事〔崛” “怎么了钠导?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵震嫉,是天一觀的道長。 經(jīng)常有香客問我牡属,道長票堵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任逮栅,我火速辦了婚禮悴势,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘措伐。我一直安慰自己特纤,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布侥加。 她就那樣靜靜地躺著捧存,像睡著了一般。 火紅的嫁衣襯著肌膚如雪担败。 梳的紋絲不亂的頭發(fā)上昔穴,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音提前,去河邊找鬼傻咖。 笑死,一個胖子當著我的面吹牛岖研,可吹牛的內(nèi)容都是我干的卿操。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼孙援,長吁一口氣:“原來是場噩夢啊……” “哼害淤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拓售,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤窥摄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后础淤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體崭放,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年鸽凶,在試婚紗的時候發(fā)現(xiàn)自己被綠了币砂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡玻侥,死狀恐怖决摧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤掌桩,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布边锁,位于F島的核電站,受9級特大地震影響波岛,放射性物質(zhì)發(fā)生泄漏茅坛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一则拷、第九天 我趴在偏房一處隱蔽的房頂上張望灰蛙。 院中可真熱鬧,春花似錦隔躲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至叛薯,卻和暖如春浑吟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背耗溜。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工组力, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抖拴。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓燎字,卻偏偏與公主長得像,于是被迫代替她去往敵國和親阿宅。 傳聞我的和親對象是個殘疾皇子候衍,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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