- 如下这种写法可以匹配成功
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”)。
catagory,action,data隐式启动匹配规则
最新推荐文章于 2022-08-28 17:26:15 发布