多个类别为DEFAULT的intent-filter

时间:2014-01-22 23:54:39

标签: android android-manifest

阅读文档,但不清楚清单中DEAFAULT类别的用途。是否可以在同一清单中使用DEFAULT类别属性的多个intent-filter?

2 个答案:

答案 0 :(得分:3)

是的,可以有多个。从这里的文档中可以看出为什么需要默认类别:

*注意:为了接收隐式意图,您必须在intent过滤器中包含CATEGORY_DEFAULT类别。方法startActivity()和startActivityForResult()将所有意图视为已声明CATEGORY_DEFAULT类别。如果您未在意图过滤器中声明此类别,则不会将隐式意图解析为您的活动。* - http://developer.android.com/guide/components/intents-filters.html

具有默认类别的多个intent过滤器的示例:

            <intent-filter>
                <action android:name="android.intent.action.CREATE_SHORTCUT"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>

            <intent-filter>
                <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="myscheme"/>
            </intent-filter>

答案 1 :(得分:0)

  

是否可以在同一清单中使用多个具有DEFAULT类别属性的intent-filter?

不确定。大多数具有<intent-filter>的活动都会支持DEFAULT类别,因为如果Intent上没有其他类别,该类别会自动添加到与startActivity()一起使用的Intent 1}}已经。

例如,在the manifest for the AOSP Music app中,您可以看到各种<activity>元素,包含和不包含<intent-filter>元素。那些<intent-filter>的人可能会也可能不会使用DEFAULT