- 如下这种写法可以匹配成功
Intent intent = new Intent();
// intent.setAction("com.action.123");
intent.setAction("com.action.456");
intent.addCategory("android.intent.category.DEFAULT");//即使代码里不写系统也会默认添加,所以必须在清单文件中配置这个category
// intent.addCategory("com.category.123");
// intent.setData(Uri.parse("http://123"));
intent.setData(Uri.parse("http://456"));
startActivity(intent); <activity android:name=".SecondActivity">
<intent-filter>
<action android:name="com.action.123" />
<action android:name="com.action.456" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.category.123" />
<data
android:host="123"
android:scheme="http" />
<data
android:host="456"
android:scheme="http" />
</intent-filter>
</activity> -
清单文件和Intent中信息类型必须一致,例如清单文件中有action,category,data,那么Intent中也要有action,category,data。如果Intent中的action和清单文件中任何一个action匹配成功则代表action匹配成功,category和data的规则和action相同。当action,category,data全部匹配成功时候才能打开目标activity。 -
清单文件中action和category是必须的,data不是必须的。Intent中action和category是必须的,data不是必须的。(Intent中的category也可以不写,因为系统会默认在Intent中添加catagory的默认值“android.intent.category.DEFAULT”)。
|