我不太明白IntentFilter的作用是什么?这是一个示例清单:
<activity android:name="SomeActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<action>
和<category>
代码的作用是什么?如果我宣布:
<activity android:name="AnotherActivity" android:label="AnotherActivity">
<intent-filter>
<action android:name="android.intent.action.PICK" />
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.INSERT" />
</intent-filter>
</activity>
如果与Intent对象一起使用,它甚至可以做什么吗?请帮我理解一下IntentFilter?
答案 0 :(得分:4)
要通知系统他们可以处理哪些隐含意图,活动,服务和广播接收器可以有一个或多个意图过滤器 。每个过滤器都描述了组件的功能,即组件愿意接收的一组意图。
意图过滤器是 IntentFilter类的实例。但是,由于Android系统在启动该组件之前必须了解组件的功能,因此通常不会在Java代码中设置intent过滤器,而是在应用程序的清单文件(AndroidManifest.xml)中将其设置为元素。
过滤器具有与Intent对象的操作,数据和类别字段并行的字段。在所有三个区域中针对过滤器测试隐式意图。要传递给拥有过滤器的组件,它必须通过所有三个测试。如果它甚至其中一个失败,Android系统将不会将其传递给组件 - 至少不是基于该过滤器。但是,由于组件可以具有多个intent过滤器,因此不通过组件过滤器之一的intent可能会在另一个过滤器上完成。
有关Intent-Filter的更多信息,请参阅此 Android Developer - Intent Filters Page