Android學習之路(五)之 Intent-Filter簡介及URI

Intent-Filter簡介及URI

Intent-Filter又稱意圖過濾器,在Intent-Filter中存在三個屬性,分別是action、category、data,在activity類中進行intent操作時,他會根據action、category、data進行匹配。
匹配依次會進行如下幾步:

動作測試:

即先對action進行匹配,如果找到與之某一項匹配時,進行第二步匹配。

類別測試:

即第二步匹配,在類別測試中,對於進行隱式意圖時,必不可少的一個屬性就是

< category android:name="android.Intent.Category.DEFAULT" />,同樣與上一步一樣找到某一項匹配就進行下一步匹配操作。

數據測試:

即第三步匹配,在數據測試中,會有很多屬性,這裏主要講以下幾個:

android:scheme 協議

android:host       主機/IP

android:port        端口

android:path       路徑

我們在activity類中,通過intent來調用setData方法時,傳輸的參數是一個Uri,那麼對於一個Uri,它必有一個規則,比如說,http://blog.csdn.net/huai814586181 這裏http就是他的協議,在Intent-Filter中的data中設置他的android:scheme="http",blog.csdn.net就是他的主機,即android:host="blog.csdn.net",huai814586181就是他的路徑,即android:path="/huai814586181",那麼還有一個端口呢?就在主機後面加上一個冒號再加端口號就可以了,同樣在Intent-Filter中設置如下:android:port="端口號"。

在匹配的時候,我們還可以加一個android:mimeType,參數的話設置爲

超文本標記語言文本 .html text/html
xml文檔 .xml text/xml
XHTML文檔 .xhtml application/xhtml+xml
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
PDF文檔 .pdf application/pdf
Microsoft Word文件 .word application/msword
PNG圖像 .png image/png
GIF圖形 .gif image/gif
JPEG圖形 .jpeg,.jpg image/jpeg
au聲音文件 .au audio/basic
MIDI音樂文件 mid,.midi audio/midi,audio/x-midi
RealAudio音樂文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
任意的二進制數據 application/octet-stream
後面那一串。以上參數來自於mime百度百科。自個兒可以百度一下就知道了。
這裏主要講一個注意點,就是在同時使用setData和setType時遇到的問題,當我們單單是這樣用,是不可以的,看一下下面的截圖就明白了:

在使用setType時,會自動清除setData設置的,在使用setData的時候會自動清除setType設置的。
那如果想兩個都用該怎麼辦呢?
這裏提供了這樣一個方法:
intent.setDataAndType(data, type),把這兩個合二爲一的一個方法。

在上面提到了URI,那麼來簡單說一下什麼是URI。
URI,全稱Uniform Resource Identifier,中文叫做統一資源標識符。用於標識某一互聯網資源名稱的字符串。
在URI中又包含了兩個子集:URL和URN
URL:Uniform Resource Locator,統一資源定位符
目前URI的最普遍形式就是無處不在的URL或統一資源定位器。
URN:Uniform Resource Name,統一資源名稱。
URL的一種更新形式,統一資源名稱(URN, Uniform Resource Name)不依賴於位置,並且有可能減少失效連接的個數。但是其流行還需假以時日,因爲它需要更精密軟件的支持。
現在最常用的就是URL了。這個簡單瞭解一下。。。

THE END~


發佈了41 篇原創文章 · 獲贊 18 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章