在Intent-Filter中使用多个Actions时的默认值

时间:2010-07-06 17:54:44

标签: android android-intent

尝试在android中查看意图和动作并查看documentation。 但我一直看到的是一个定义了多个动作的intent过滤器。像这样,从上面的链接:

<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”。用内容调用此内容时://com.google.provider.NotePad/notes如何知道要使用哪个活动?

1 个答案:

答案 0 :(得分:15)

  

但是,如果你打电话给那个活动,怎么做   它选择选择哪个动作?

Intent有一个动作。如果该操作与Intent过滤器中的三个匹配中的一个匹配,并且类别匹配,并且匹配MIME类型,那么它将与整个Intent过滤器匹配,并将启动该活动。

换句话说,多个动作(或任何其他元素)是逻辑OR。

  

就此而言,与之相关   示例有多个活动   都包含相同的动作,   “android.intent.action.VIEW”for   示例

通常Intent过滤器中有一些内容可以区分不同的内容。

  

用类似的东西来调用它   内容://com.google.provider.NotePad/notes   它怎么知道哪个活动   使用?

它询问内容提供商,“哟,dawg - 这是什么MIME类型,哟?”。根据内容提供商提供的MIME类型,它可以找到任何匹配的Intent过滤器。