我知道我需要使用一个活动来接收这样的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>
我想知道这两种格式有什么区别?
答案 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