【Android】Intent之顯示、隱式調(diào)用

hi.png

1.顯示Intent

  • 描述
    顯示Intent的調(diào)用需要明確的指定被啟動對象的組件信息(包括報名和類名)隧饼,通過在Intent上指定明確的組件信息來實現(xiàn)沈堡。
  • 使用場景
    一般是用在知道目標(biāo)組件名稱的情況下;
    在同一應(yīng)用程序內(nèi)部的情況下使用較多燕雁。
  • 示例
    MainActivity中啟動一個名為LoginActivity的Activity:
// 顯示調(diào)用示例
Intent intent = new Intent();
intent.setClass(MainActivity.this, LoginActivity.class);
startActivity(intent);

2.隱式Intent

  • 描述
    隱式Intent調(diào)用不需要明確指定被啟動對象的組件信息的诞丽,通過IntentFilter來實現(xiàn),系統(tǒng)會根據(jù)隱式意圖中設(shè)置的Action(行為/動作)贵白、Category(類別)率拒、Data(URI和數(shù)據(jù)類型)找到最合適的組件來處理這個意圖崩泡。
  • 使用場景
    一般用在沒有明確指出目標(biāo)組件名稱的前提下禁荒;
    一般是用于在不同應(yīng)用程序之間责静。
  • IntentFilter的過濾規(guī)則
    IntentFilter的過濾信息有action淘菩、category摹量、data季春,只用同時匹配過濾列表中的信息,才可以匹配成功热康,一個Activity中可以有多個intent-filter,一個Intent只要有一組完全匹配就可以成功啟動對應(yīng)的Activity

Action匹配規(guī)則:
 action是一個字符串區(qū)分大小寫沛申,要求必須存在且和過濾規(guī)則中的其中一個action相同。
category匹配規(guī)則:
 Intent中如果有那么必須和過濾規(guī)則中的一個category相同姐军,如果不設(shè)置category也可以匹配铁材,原因是系統(tǒng)在調(diào)用startActivity或者startActivityForResult時默認(rèn)為Intent加上了android.intent.category.DEFAULT,所以在隱式調(diào)用時必須加<category android:name="android.intent.category.DEFAULT" />奕锌。
data匹配規(guī)則:
 如果在AndroidManifest.xml里面指定了<data>這行著觉,那么,需要匹配到它的話惊暴,在代碼里必須要設(shè)置Intent的data饼丘。

  • 示例
    1.在AndroidManifest.xml中注冊要啟動的目標(biāo)LoginActivity
          <activity
              android:name="com.zihao.LoginActivity"
              android:screenOrientation="portrait">
              <intent-filter>
                  <action android:name="com.zihaoLogin.action" />
    
                  <category android:name="android.intent.category.DEFAULT" />
              </intent-filter>
          </activity>
    
    2.在MainActivity中通過以下代碼啟動LoginActivity
          Intent intent = new Intent();
          intent.setAction("com.zihaoLogin.action");
          intent.addCategory("android.intent.category.DEFAULT");
          startActivity(intent);  
    

3.Intent顯示/隱式的區(qū)別

  • 目標(biāo)差異:顯示Intent有固定的接收方,隱式Intent無固定的接收方辽话。
    顯示Intent有明確的被啟動對象的組件信息肄鸽;
    隱式Intent沒有明確指出目標(biāo)組件名稱,需要通過IntentFilter過濾匹配油啤。
  • 適用場景差異:顯示Intent更適合在同項目下使用典徘,隱式Intent更適合不同項目間的頁面跳轉(zhuǎn)。
    同項目下益咬,顯示Intent效率更高烂斋。
  • 作用域:顯示Intent不可以跨應(yīng)用使用,隱式Intent可以跨應(yīng)用使用础废。
    如果隱式Intent不需要跨應(yīng)用啟動汛骂,在AndroidManifest.xml中添加android:exported=”false”配置即可。

原則上评腺,一個Intent中不應(yīng)該既有顯示調(diào)用又有隱式調(diào)用帘瞭,如果一個Intent同時使用了顯示調(diào)用與隱式調(diào)用,則以顯示調(diào)用為主蒿讥。


如果您有更好的建議歡迎評論分享蝶念,如有錯誤,請批評指正芋绸,謝謝媒殉。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市摔敛,隨后出現(xiàn)的幾起案子廷蓉,更是在濱河造成了極大的恐慌,老刑警劉巖马昙,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桃犬,死亡現(xiàn)場離奇詭異刹悴,居然都是意外死亡,警方通過查閱死者的電腦和手機攒暇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門土匀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人形用,你說我怎么就攤上這事就轧。” “怎么了田度?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵钓丰,是天一觀的道長。 經(jīng)常有香客問我每币,道長携丁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任兰怠,我火速辦了婚禮梦鉴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘揭保。我一直安慰自己肥橙,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布秸侣。 她就那樣靜靜地躺著存筏,像睡著了一般。 火紅的嫁衣襯著肌膚如雪味榛。 梳的紋絲不亂的頭發(fā)上椭坚,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音搏色,去河邊找鬼善茎。 笑死,一個胖子當(dāng)著我的面吹牛频轿,可吹牛的內(nèi)容都是我干的垂涯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼航邢,長吁一口氣:“原來是場噩夢啊……” “哼耕赘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起膳殷,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤操骡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體当娱,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡吃既,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年考榨,在試婚紗的時候發(fā)現(xiàn)自己被綠了跨细。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡河质,死狀恐怖冀惭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情掀鹅,我是刑警寧澤散休,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站乐尊,受9級特大地震影響戚丸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扔嵌,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一限府、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧痢缎,春花似錦胁勺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嵌洼,卻和暖如春案疲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背麻养。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工络拌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人回溺。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓春贸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親遗遵。 傳聞我的和親對象是個殘疾皇子萍恕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

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