在AndroidManifest.xml中没有<intent-filter>的<activity> </intent-filter> </activity>

时间:2014-04-12 08:23:30

标签: android android-intent

我知道我需要使用一个活动来接收这样的Intent(不是主要活动)。

<activity android:name=".MyApp_2ndActivity">
    <intent-filter>
         <action android:name="android.intent.action.VIEW" />
         <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

但是,如果删除“intent-filter”,我发现它也可以被触发,就像这样。

<activity android:name=".MyApp_2ndActivity">
</activity>

我想知道这两种格式有什么区别?

3 个答案:

答案 0 :(得分:3)

见这里:http://developer.android.com/guide/components/intents-filters.html

区别在于第二个只能使用显式 Intent启动 - 一个命名它想要启动的组件。第一个可以由隐式 Intent启动 - 一个没有指定确切的组件,但包含系统找到适当匹配的信息。系统使用intent过滤器来解析此类意图。

答案 1 :(得分:1)

差异在于我们何时使用此代码:

<activity android:name=".MyApp_2ndActivity">
<intent-filter>
     <action android:name="android.intent.action.VIEW" />
     <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

这将是您启动应用程序时触发的第一个活动。它不需要 任何显式意图

当我们使用此代码时:

<activity android:name=".MyApp_2ndActivity">
</activity>

将使用Explicit intent

启动活动

答案 2 :(得分:0)

例如,当活动从设备上的特定事件开始时,将使用Intent过滤器。您的主要活动有特定的意图过滤器。如果您希望在扫描NFC标签时启动应用程序,可以通过意图过滤器指定。

您可以在此处阅读更多内容。

http://developer.android.com/guide/components/intents-filters.html