文法(SYNTAX):
<intent-filterandroid:icon="drawable resource"
android:label="string resource"
android:priority="integer">
. . .
</intent-filter>
被包含於(CONTAINED IN):
<activity>
<activity-alias>
<service>
<receiver>
必須要包含的元素(MUST CONTAIN):
<action>
能夠包含的元素(CAN CONTAIN):
<category>
<data>
說明(DESCRIPTION):
這個元素用於指定Activity、Service或Broadcast Receiver能夠響應的Intent對象的類型。Intent過濾器聲明了它的父組件的能力---Activity或Service所能做的事情和Broadcast Receiver所能夠處理的廣播類型。它會開啟組件來接收它所宣告類型的Intent對象,過濾掉那些對組件沒有意義的Intent對象請求。
過濾器的大多數內容是通過<action>、<category>和<data>子項目來描述的。
屬性(ATTRIBUTES):
android:icon
當組件要把過濾器所具有的能力展示給使用者時,會使用這個屬性所設定的表徵圖來表示它的父組件(Activity、Service或Broadcast Receiver)。
這個屬性必須要引用一個包含圖片定義的可繪製資源。預設值是由父組件的icon屬性設定的。如果父組件沒有指定一個表徵圖,那麼預設值就會使用<application>元素所設定的icon。
android:label
這個屬性用於給其父組件設定一個使用者可讀的標籤。這個標籤不是有其父組件設定的那個,在組件要把過濾器所具有的能力展示給使用者的時候,要使用這個屬性值。
這個屬性值應該引用一個字串資源,以便它能夠像使用者介面中的其他字串一樣,能夠被本地化。但是,為了開發應用程式的便利,也可以使用原生的字串。
這個屬性的預設值是有它的父組件提供的。如果父組件沒有指定一個標籤,那麼預設值就會使用由<application>元素的所設定的標籤。
android:priority
這個屬性用於給過濾器設定一個優先順序。其父組件能夠通過優先順序來依次處理過濾器所描述類型的Intent對象。這個屬性對Activity和Broadcast Receiver對象有意義:
1. 它提供了Activity能夠如何響應跟過濾器匹配的Intent對象請求的資訊(相對與其他的也能響應這個Intent請求的Activity)。當一個Intent對象請求能夠被多個帶有不同優先順序的Activity處理時,Android系統只考慮把高優先順序的Intent過濾器作為潛在的Intent對象請求目標。
2. 它控制了Broadcast Receiver執行接收廣播訊息的順序。高優先順序的過濾器會優先調用。(這個順序只應用與同步訊息,對於非同步訊息會忽略優先順序的設定。)
只有真正想要給接收廣播訊息的過濾器施加一個特定順序,或者要強制Android來應用另外一個Activity,才會使用這個屬性。
這個屬性值必須是一個整數,如:100,數字越大,優先順序越高。
被引入的版本(INTRODUCED IN):
API Level 1
摘自 FireOfStar的專欄