Activity IntentFilter匹配规则
一个Activity中可以配置多个IntentFilter,一个IntentFilter中包含一个或多个action、category、data,只有分别都匹配上才能被启动。
- action匹配规则:
- Intent中的action能匹配上IntentFilter中任意一个action的值;
- action的值区分大小写;
- Intent必须要有一个action去匹配IntentFilter中的action;
- category匹配规则:
- 只要Intent中有category(一个或多个),能在IntentFilter中找到相同的匹配上就行;
- 如果Intent中没有的话,那么系统默认category的值为android.intent.category.DEFAULT;
- 不含DEFAULT的category是无法接收隐式Intent的;
- data匹配规则:
- 只要Intent中有action(一个或多个),能在IntentFilter中找到相同的匹配上就行;
- 程序入口Activity必须要有的下面两行代码
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.action.DEFAULT"/>
- action匹配规则:
显示启动Activity:startActivity(context,XX.class);
隐式启动:
- startActivity(“action的字符串值”);
- Intent中设置category,dataAndType属性;
- 在Intent中设置IntentFilter过滤器, 设置action、category、data等属性