安卓學(xué)習(xí):IntentFilter

IntentFilter是什么

顧名思義IntentFilter:“意圖過濾器”诱渤,主要用來過濾隱式意圖。
當(dāng)用戶做一些操作的時(shí)候谈况,安卓系統(tǒng)會(huì)根據(jù)配置的“意圖過濾器”勺美,去尋找可以響應(yīng)操作的組件來進(jìn)行服務(wù) 。

為什么用IntentFilter

Activity有兩種啟動(dòng)模式(此處不多說)碑韵,一種是顯示跳轉(zhuǎn)励烦,一種是隱式跳轉(zhuǎn)。其中隱式跳轉(zhuǎn)就是通過匹配設(shè)置的IntentFilter進(jìn)行實(shí)現(xiàn)的泼诱。

怎么用IntentFilter(IntentFilter的匹配原則)

IntentFilter的過濾信息包含action 坛掠、category、data治筒。只有同時(shí)匹配過濾列表中的action屉栓、category、data耸袜,才能成功友多,其中一個(gè)Activity可以有多個(gè)IntentFilter,一個(gè)Intent只要能匹配任何一組IntentFilter堤框,就可以成功啟動(dòng)對(duì)應(yīng)的Activity

下面來想寫講解IntentFilter的匹配規(guī)則

1.action 的匹配規(guī)則

action其實(shí)就是一個(gè)字符串域滥,其中系統(tǒng)定義了一些action,我們也可以自己定義自己的action蜈抓。

action的匹配規(guī)則是:Intent中的action是必須存(可以有多個(gè)action)在并且必須要和過濾規(guī)則中的其中一個(gè)action完全形同(包括大小寫)

2.category 的匹配規(guī)則

category也是一個(gè)字符串启绰,系統(tǒng)也定義了一些category,我們自己也可以定義自己的category沟使。

category和action的匹配原則不同委可,Intent中不一定含有category,如果含有category腊嗡,那么所有的category必須要和過濾規(guī)則中的其中一個(gè)category相同着倾。

為什么不設(shè)置category也可以匹配拾酝?
原因是系統(tǒng)在startActivity或者startActivityForResult的時(shí)候默認(rèn)為Intent
加上一個(gè)android.intent.category.DEAFAULT,所以必須在intent-filter中
加上android.intent.category.DEFAULT這個(gè)category

3.data的匹配規(guī)則

data的匹配規(guī)則和action是一樣的卡者,只是data的結(jié)構(gòu)比較復(fù)雜

先來看一下整體的data結(jié)構(gòu)

              <data
                android:host="www.baidu.com"
                android:mimeType="text/abc"
                android:path="/my"
                android:port="8080"
                android:scheme="http"></data>
date有兩部分構(gòu)成:mimeType和URI蒿囤。

mimeType:(可以自己定義)結(jié)構(gòu)形式是aaa/bb
指媒體類型 例如: image/jpeg vided/* ...

URI:相當(dāng)于url 其結(jié)構(gòu)形式:

     <scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>]

詳細(xì)解釋:

Scheme:即URI的模式。如果URI中沒有指定Scheme.那么整個(gè)URI無效崇决。默認(rèn)值為content 和 file蟋软。

Host:URI的host。比如www.baidu.com嗽桩。如果指定了scheme和port岳守,path等其他參數(shù),但是host未指定碌冶,那么整個(gè)URI無效湿痢;如果只指定了scheme,沒有指定host和其他參數(shù)扑庞,URI也是無效的譬重。可以這樣理解:一個(gè)完整的URI :http://www.axe.com:500/profile/info 我將后面的port 和path“:500/profile/info ”去掉罐氨,這個(gè)URI還是有效臀规。如果我單獨(dú)將www.axe.com 拿出來那這個(gè)URI就無效了。

Port:URI端口栅隐,當(dāng)URI指定了scheme 和 host 參數(shù)時(shí)port參數(shù)才有意義塔嬉。

path:用來匹配完整的路徑,如:http://example.com/blog/abc.html租悄,這里將 path 設(shè)置為 /blog/abc.html 才能夠進(jìn)行匹配谨究;

pathPrefix: 用來匹配路徑的開頭部分,拿上面的 Uri 來說泣棋,這里將 pathPrefix 設(shè)置為 /blog 就能進(jìn)行匹配了胶哲;

pathPattern: 用表達(dá)式來匹配整個(gè)路徑。

如果想匹配上述一開始提到的例子可以這么寫:

    Intent intent = new Intent();
    intent.setAction("aaa");
    intent.setDataAndType(Uri.parse("http://www.baidu.com:8080/my"),"text/abc");
    startActivity(intent);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潭辈,一起剝皮案震驚了整個(gè)濱河市鸯屿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌把敢,老刑警劉巖寄摆,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異技竟,居然都是意外死亡冰肴,警方通過查閱死者的電腦和手機(jī)屈藐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門榔组,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熙尉,“玉大人,你說我怎么就攤上這事搓扯〖焯担” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵锨推,是天一觀的道長铅歼。 經(jīng)常有香客問我,道長换可,這世上最難降的妖魔是什么椎椰? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮沾鳄,結(jié)果婚禮上慨飘,老公的妹妹穿的比我還像新娘。我一直安慰自己译荞,他們只是感情好瓤的,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吞歼,像睡著了一般圈膏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上篙骡,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天稽坤,我揣著相機(jī)與錄音,去河邊找鬼糯俗。 笑死慎皱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叶骨。 我是一名探鬼主播茫多,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼忽刽!你這毒婦竟也來了天揖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤跪帝,失蹤者是張志新(化名)和其女友劉穎今膊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伞剑,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡斑唬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恕刘。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缤谎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出褐着,到底是詐尸還是另有隱情坷澡,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布含蓉,位于F島的核電站频敛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏馅扣。R本人自食惡果不足惜斟赚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望差油。 院中可真熱鬧汁展,春花似錦、人聲如沸厌殉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽公罕。三九已至器紧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間楼眷,已是汗流浹背铲汪。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留罐柳,地道東北人掌腰。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像张吉,于是被迫代替她去往敵國和親齿梁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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