一、action
- <intent-filter>中可以有多个action,Intent只要匹配其中1个action即匹配成功
- <intent-filter>没有action,任何Intent无法与之匹配
- <intent-filter>中有action,Intent中没有action时可以与之匹配成功
- <intent-filter>中有action,Intent中也有action时,必须命中<intent-filter>中的一个action才能匹配成功
Intent中的action必须命中<intent-filter>中的一个action,才能匹配成功。Intent无action时匹配成功。
二、category
<intent-filter>中可以有多个category,Intent也可以有多个category
- 如果<intent-filter>不存在category,那么所有的intent都无法通过。
- 如果<intent-filter>存在category,如果Intent中不存在存在category,可以通过。
- 如果Intent中存在category,那么Intent中的所有category都包含在<intent-filter>中,才可以通过。
android.intent.category.DEFAULT:
Android把所有传给startActivity()的隐式意图当作他们包含至少一个类别:"android.intent.category.DEFAULT",因此,想要接收隐式意图的活动必须在它们的意图过滤器中包含"android.intent.category.DEFAULT"。
android.intent.category.BROWSABLE
三、data
首先<intent-filter>可以有多个data,Intent最多能有1个data。
<intent-filter>和Intent中的data必须完全匹配才能通过,也适用于通配符。
XML
<data android:mimeType="text/plain"
android:host="www.xxx.com"
android:path="/aa/bb"
android:pathPattern="/b/*"
android:port="80"
android:scheme="http" />