catagory,action,data隐式启动匹配规则

  1. 如下这种写法可以匹配成功
                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>
  2. 清单文件和Intent中信息类型必须一致,例如清单文件中有action,category,data,那么Intent中也要有action,category,data。如果Intent中的action和清单文件中任何一个action匹配成功则代表action匹配成功,category和data的规则和action相同。当action,category,data全部匹配成功时候才能打开目标activity。

  3. 清单文件中action和category是必须的,data不是必须的。Intent中action和category是必须的,data不是必须的。(Intent中的category也可以不写,因为系统会默认在Intent中添加catagory的默认值“android.intent.category.DEFAULT”)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值