沒錯,就是那個說了N遍的Activity


Activity生命周期

  • onCreate()

繼承Activity類時默認(rèn)生成胰默,在activity第一次被創(chuàng)建時候被調(diào)用场斑,完成activity初始化漓踢。

  • onStart()

當(dāng)然在onCreate()之后被調(diào)用牵署,這個時候你還看不到activity,在activity即將被你看見的時候喧半,它被調(diào)用奴迅。

  • onResume()

activity正在運行,即處于active/running的狀態(tài)挺据。
ps: onActivityResult ():You will receive this call immediately before onResume() when your activity is re-starting.

  • onPause()

系統(tǒng)準(zhǔn)備去撩別的activity的時候取具,當(dāng)前activity馬上要走了的時候被調(diào)用。在這個時候扁耐,趕緊把一些消耗CPU的資源放掉暇检,養(yǎng)精蓄銳,等activity回來喲婉称。[害羞臉]

  • onStop()

當(dāng)你已經(jīng)完全看不到activity的時被調(diào)用块仆。
請注意:是完全看不到了,如果看到一根頭發(fā)絲都不會被執(zhí)行王暗,比如:彈出了一個對話框的activity悔据。

  • onDestory()

在銷毀前被調(diào)用。[憂傷.jpg]

  • onRestart()

在onStop之后俗壹,從停止?fàn)顟B(tài)變成運行科汗,那么經(jīng)過onRestart又回到onStart。

<br />


Activity被回收了之后


PS:
如何在屏幕旋轉(zhuǎn)的時候不重新創(chuàng)建activity?
設(shè)置android:configChanges="orientation"

  • onSaveInstanceState()

會將activity狀態(tài)通過這個方法保存至Bundle對象绷雏,當(dāng)然你也可以額外增加鍵值存入Bundle來保存這些狀態(tài)头滔。
但是,一切的前提:activity不是被用戶finish的涎显!

  • onRestoreInstanceState()

這個方法可以理解為恢復(fù)上面大哥臨時保存的狀態(tài)坤检。
產(chǎn)生的Bundle對象傳遞到該方法以及onCreate()方法中。
發(fā)現(xiàn)了嗎棺禾?這就是onCreate()里面的參數(shù)缀蹄。

[圖片上傳失敗...(image-ce8dff-1590652745088)]

public class MainActivity extends AppCompatActivity {

    String data;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        if (savedInstanceState != null) {
            data = savedInstanceState.getString("data_key");
        }
        ......
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        String temp = "ahahaha";
        outState.putString("data_key", temp);
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        if (savedInstanceState != null) {
            data = savedInstanceState.getString("data_key");
        }
    }
}

Activity的四種啟動模式

AndroidMainifest啟動

  • standard -- 標(biāo)準(zhǔn)啟動模式
    默認(rèn)模式,可以理解為疊羅漢,每次都會創(chuàng)建新的實例缺前,覆蓋在原來的額上面蛀醉。
  • singleTop
    判斷棧頂最上層是不是我們需要啟動的activity。如果是衅码,則不需要創(chuàng)建新的實例拯刁。
手殘星人
  • singleTask
    檢查整個棧中是否有需要啟動的activity,如果存在則將該activity以上的所有acitivity都銷毀逝段。
主要看文字垛玻,啊哈哈,手殘星人
  • singleInstance
    這個聲明的activity會出現(xiàn)在一個新的棧中奶躯,這個棧只有這一個activity帚桩。兩個應(yīng)用之間可以共享這一個activity。

Intent Flag啟動

該方法優(yōu)先級高于AndroidMainifest啟動

  • FLAG_ACTIVITY_NEW_TASK
    使用一個新的Task來啟動一個Activity嘹黔。
    通常使用在從Service中啟動Activity場景账嚎,由于Service中不存在Activity棧,使用改Flag創(chuàng)建一個新的Activity棧儡蔓,并創(chuàng)建新的Activity實例郭蕉。

  • FLAG_ACTIVITY_SINGLE_TOP
    相當(dāng)于android:launchMode="singleTop"
    <br />

  • FLAG_ACTIVITY_CLEAR_TOP
    相當(dāng)于android:launchMode="singleTask"
    <br />

  • ** FLAG_ACTIVITY_NO_HISTORY**
    使用這種模式啟動activity,當(dāng)當(dāng)前activity啟動其他activity之后喂江,該activity消失召锈,不保留在Activity棧中。
    <br />


    FLAG_ACTIVITY_NO_HISTORY

<br />

IntentFilter匹配規(guī)則

IntentFilter過濾信息有:action获询、category涨岁、data。
一個過濾列表中可以有多個筐付。
只有同時匹配這三項才能成功啟動目標(biāo)Activity卵惦。
一個Activity中可以有多個過濾列表,只要匹配任何一組即可成功啟動目標(biāo)Activity瓦戚。

  • action匹配規(guī)則
    當(dāng)一個過濾規(guī)則中有多個action時沮尿,只要Intent中的action能和過濾規(guī)則中任意一個action相同,即匹配成功较解。

  • category匹配規(guī)則
    1.category是一個字符串畜疾,系統(tǒng)有預(yù)定義一些,我們也可以定義自己的category印衔。

2.當(dāng)存在多個的時候啡捶,必須使每一個Intent中的category和過濾規(guī)則中的category完全相同,才能匹配成功奸焙。

3.當(dāng)不存在時瞎暑,系統(tǒng)在調(diào)用startActivity或startActivityForResult的時候默認(rèn)為Intent加上“android.intent.category.DEFAULT”彤敛。

4 .為了使activity可以接收隱式調(diào)用,必須在intent-filter中指定“android.intent.category.DEFAULT”了赌。

  • data匹配規(guī)則
    與action類似墨榄,但結(jié)構(gòu)較為復(fù)雜。
<!-- data語法  -->
<intent-filter>
    <data
        android:host="string"
        android:mimeType="string"
        android:path="string"
        android:pathPattern="string"
        android:pathPrefix="string"
        android:port="string"
        android:scheme="string" />
      ……
</intent-filter>


<!-- 也可以寫成 -->
<intent-filter>
    <data   android:host="string" />
    <data   android:mimeType="string" />
     ……
</intent-filter>

data由兩部分組成勿她,mime和URI袄秩,見下圖


eg:
intent.setDataAndType(Uri.parse("http://123"),"image/jpeg");



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市逢并,隨后出現(xiàn)的幾起案子之剧,更是在濱河造成了極大的恐慌,老刑警劉巖砍聊,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件背稼,死亡現(xiàn)場離奇詭異,居然都是意外死亡辩恼,警方通過查閱死者的電腦和手機雇庙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灶伊,“玉大人,你說我怎么就攤上這事寒跳∑溉” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵童太,是天一觀的道長米辐。 經(jīng)常有香客問我,道長书释,這世上最難降的妖魔是什么翘贮? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮爆惧,結(jié)果婚禮上狸页,老公的妹妹穿的比我還像新娘。我一直安慰自己扯再,他們只是感情好芍耘,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著熄阻,像睡著了一般斋竞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秃殉,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天坝初,我揣著相機與錄音浸剩,去河邊找鬼。 笑死鳄袍,一個胖子當(dāng)著我的面吹牛乒省,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畦木,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼袖扛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了十籍?” 一聲冷哼從身側(cè)響起蛆封,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勾栗,沒想到半個月后惨篱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡围俘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年砸讳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片界牡。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡簿寂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出宿亡,到底是詐尸還是另有隱情常遂,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布挽荠,位于F島的核電站克胳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏圈匆。R本人自食惡果不足惜漠另,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望跃赚。 院中可真熱鬧笆搓,春花似錦、人聲如沸来累。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘹锁。三九已至葫录,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間领猾,已是汗流浹背米同。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工骇扇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人面粮。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓少孝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親熬苍。 傳聞我的和親對象是個殘疾皇子稍走,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

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