这些意图过滤器组之间有什么区别?
<intent-filter>
<action android:name="action1">
<category android:name="category1">
</intent-filter>
<intent-filter>
<action android:name="action2">
<category android:name="category2">
</intent-filter>
和
<intent-filter>
<action android:name="action1">
<category android:name="category1">
<action android:name="action2">
<category android:name="category2">
</intent-filter>
我认为第一个只有在意图动作/类别匹配其中一个对时才有效(即action1 / category1和action2 / category2但不是action1 / category2或action2 / category1)。第二种方法适用于任何动作和组合的组合。提供的类别。
这是对的吗?
答案 0 :(得分:3)
http://developer.android.com/reference/android/content/IntentFilter.html
如果任何给定值与Intent操作匹配,则操作匹配;如果 过滤器指定没有动作,那么它只会匹配Intents 不包含任何动作。
如果Intent中的所有类别都匹配,则匹配 过滤器中给出的类别。过滤器中的额外类别 不在Intent中不会导致匹配失败。注意 与动作不同,没有类别的IntentFilter只会匹配 一个没有任何类别的意图。
所以第一个版本会匹配这些意图:
第二个适合这些:
正如您所看到的,可以在Intent中包含更多类别,但您只能执行一个操作。