2010-07-06 68 views
4

試圖在Android中使用意圖和動作並查看documentation。 但我一直看到的是一個定義了多個動作的意圖過濾器。與此類似,從上面的鏈接:在意圖過濾器中使用多個動作時的默認設置

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <action android:name="android.intent.action.EDIT" /> 
    <action android:name="android.intent.action.PICK" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <data android:mimeType="vnd.android.cursor.dir/vnd.google.note" /> 
</intent-filter> 

但是,如果你調用一個活動,它是如何選擇選擇哪個動作?

對於這個問題,鏈接到例子有多個活動,都包含相同的動作,例如「android.intent.action.VIEW」。用類似content://com.google.provider.NotePad/notes的方式調用它時,它如何知道要使用哪個活動?

回答

15

但是,如果你打電話給那個活動, 它是如何選擇的?

Intent有一個動作。如果該動作與Intent過濾器中的三個匹配,並且匹配該類別,並匹配MIME類型,則它將與整體匹配Intent過濾器,並將開始該活動。

換句話說,多個動作(或任何其他元素)是一個邏輯或。

對於這個問題,鏈接到 例如有多個活動 都含有相同的動作, 「android.intent.action.VIEW」爲 例子。

而且通常有Intent過濾器的東西來區分下一個。

當像 內容調用此://com.google.provider.NotePad/notes 它是如何知道使用哪種活動 ?

它詢問內容提供者「yo,dawg--這是什麼MIME類型,喲?」。給定內容提供者的MIME類型,它可以找到任何匹配的Intent過濾器。

+0

在鏈接的例子中,所有的MIME類型都完全相同。那麼它怎麼說呢? – 2010-07-06 18:32:41

+0

你想說什麼?你想要做什麼,不行? – Pentium10 2010-07-06 18:36:43

+3

+1喜歡'「喲,dawg - 這是什麼MIME類型,喲?」 – Pentium10 2010-07-06 18:37:07

相關問題