日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

intent和intentfilter

發(fā)布時間:2025/4/5 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 intent和intentfilter 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

intent簡介

intent代表了安卓應(yīng)用的啟動意圖,根據(jù)它的各個屬性來確定啟動哪個組件,它可以傳遞

Component、Action、Data、Category、Extra以及Flag。

Component:組件名稱實(shí)際上就是一個ComponentName對象,用于標(biāo)識唯一的應(yīng)用程序組件,即指明了期望的Intent組件,這種對象的名稱是由目標(biāo)組件的類名與目標(biāo)組件的包名組合而成的。

Action:實(shí)際上就是一個描述了Intent所觸發(fā)動作名稱的字符串

系統(tǒng)定義的Action常量有很多,下面只列出其中一些較常見的。

ACTION_CALL,撥出Data里封裝的電話號碼。
ACTION_EDIT,打開Data里指定數(shù)據(jù)所對應(yīng)的編碼程序。
ACTION_VIEW,打開能夠顯示Data中封裝的數(shù)據(jù)的應(yīng)用程序。
ACTION_MAIN,聲明程序的入口,該Action并不會接收任何數(shù)據(jù),同時結(jié)束后也不會返回任何數(shù)據(jù)。
ACTION_BOOT_COMPLETED,BroadcastReceiver Action的常量,表明系統(tǒng)啟動完畢。
ACTION_TIME_CHANGED,BroadcastReceiver Action的常量,表示系統(tǒng)時間通過設(shè)置而改變。

Data:Data主要是對Intent消息中數(shù)據(jù)的封裝,主要描述Intent的動作所操作到的數(shù)據(jù)的URI及類型。不同類型的Action會有不同的Data封裝。

Category:Category是對目標(biāo)組件類別信息的描述。同樣作為一個字符串對象,一個Intent中可以包含多個Category。與Category相關(guān)的方法有三個,addCategory添加一個Category,removeCategory刪除一個Category,而getCategories得到一個Category。

CATEGORY_GADGET,表示目標(biāo)Activity是可以嵌入到其他Activity中的。
CATEGORY_HOME,表明目標(biāo)Activity為HOME Activity。
CATEGORY_TAB,表明目標(biāo)Activity是TabActivity的一個標(biāo)簽下的Activity。
CATEGORY_LAUNCHER,表明目標(biāo)Activity是應(yīng)用程序中最先被執(zhí)行的Activity。
CATEGORY_PREFERNCE,表明目標(biāo)Activity是一個偏好設(shè)置的Activity。

Extra:Extra中封裝了一些額外的附加信息,這些信息是以鍵值對的形式存在的。

Flag:一些有關(guān)系統(tǒng)如何啟動組件的標(biāo)志位,Android同樣對其進(jìn)行了封裝。

intentfilter的簡介

intentfilter實(shí)際上相當(dāng)于intent的過濾器,一個應(yīng)用程序開發(fā)完成后,需要告訴Android系統(tǒng)自己能夠處理哪

些隱形的intent請求,這就需要聲明intentfilter。它過濾intent的時候,一般通過Action、Data、Category三方面進(jìn)行監(jiān)測。

(1)檢查Action

一個Intent只能設(shè)置一種Action,但是一個IntentFilter卻可以設(shè)置多個Action過濾。當(dāng)IntentFilter設(shè)置了多個Action時,只需一個滿足即可完成Action驗(yàn)證。當(dāng)IntentFilter中沒有說明任何一個Action時,那么任何的Action都不會與之匹配。而如果Intent中沒有包含任何Action,那么只要IntentFilter中含有Action時,便會匹配成功。

(2)檢查Data

數(shù)據(jù)的監(jiān)測主要包含兩部分,即數(shù)據(jù)的URI及數(shù)據(jù)類型,而數(shù)據(jù)URI又被分成三部分進(jìn)行匹配(scheme、authority、path),只有這些全部匹配時,Data的驗(yàn)證才會成功。

(3)檢查Category

IntentFilter同樣可以設(shè)置多個Category,當(dāng)Intent中的Category與IntentFilter中的一個Category完全匹配時,便會通過Category的檢查,而其他的Category并不受影響。但是當(dāng)IntentFilter沒有設(shè)置Category時,只能與沒有設(shè)置Category的Intent相匹配。

總結(jié)

以上是生活随笔為你收集整理的intent和intentfilter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。