Activity的使用总结 (二)--Action、Category、Data匹配规则

本文详细介绍了Android中隐式启动Activity时Action、Category和Data的匹配规则,包括Action的必要性、Category的匹配条件、Data的组成和匹配方式,并提供了防止匹配失败的检测方法。常见Action如Intent.ACTION_VIEW和Intent.ACTION_MAIN,系统默认添加Category DEFAULT,而Data匹配涉及Scheme、Host、Port、Path等元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android隐示启动的Action、Category、Data匹配规则

1.定义:

  • Action:定义匹配动作,属性值为一个字符串,Intent中必须携带有action,系统预定义了一些action,但是我们也可以在应用中定义自己的action.

  • Category:用于指定当前动作(Action)被执行的环境,属性值也是一个字符串,系统也预定义了一些Category,我们也可以自定义.过滤规则intent-filter过滤器中一定要有如下设置

 <category android:name="android.intent.category.DEFAULT" />
  • Data:用于指定数据,由两部分组成,mimeType和URI.mimeType指媒体类型,比如image/ipeg,video/*可以表示图片,文本,视屏等不同的媒体格式

2 匹配规则:

  • 1.Action的匹配规则:Intent中必须携带有Action
    示例1:
    Intent intent = new Intent();
    intent.setAction(“com.action.demo1”);
    intent.setAction(“com.action.demo2”);
    startActivity(intent);
    intent中包含2个action ,“com.action.demo1"和"com.action.demo2”。要启动的组件必须包含这两个action,如下
<activity android:name=".ActionDemoActivity">
            <intent-filter>
                <action android:name="com.action.demo1" />
                <action android:name="com.action.demo2" />
                <action android:name="com.action.demo3" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
</activity>

说明:

  • 1.action的匹配要求Intent中要携带至少一个action,并且Intent中携带的所有action在某一组intent-filter中都能完全匹配上,即不会出现Intent中携带的某个action在intent-filter中找不到的情况.
  • 2.一个act可以有多个Intent-filter,一个Intent-filter中可以有多个action,一个Intent只要能匹配任何一组intent-filter就可以成功启动对应的act
  • 3,action区分大小写,大小写不同的字符串
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值