Android之Intent与IntentFilter

  • 在Android系统中,一般应用程序是由多个核心组件构成的。如果用户需要从一个Activity切换到另一个Activity,则必须使用Intent来进行切换。
  • Intent被称为意图,是程序中各组件进行交互的一种重要方式,他不仅可以指定当前组件要执行的动作,还可以在不同组件之间进行数据传递。
  • 一般用于启动Activity、Service以及发送广播等。根据开启目标组件的方式不同,Intent被分为两种类型显示意图和隐式意图。

1、显式意图可以直接通过名称开启指定的目标组件

在这里插入图片描述

2、隐式意图通过指定action和category等属性,系统根据这些信息进行分析后寻找目标Activity

在这里插入图片描述
当发送一个隐式Intent后,Android系统会将他与程序中的每一个组件的过滤器进行匹配,匹配属性有 action、data、category,需要这三个属性都匹配成功才能唤起相应的组件。

4、action属性匹配规则

action:用于指定Intent对象的动作

<intent-filter>
    <action android:name="android.intent.action.EDIT"/>
    <action android:name="android.intent.action.VIEW"/>
    ......
</intent-filter>

只要Intent携带的action与其中一个标签中action的声明相同,action属性就匹配成功。
注意:在清单文件中为Activity添加标签时,必须添加action属性,否则隐式Intent无法开启该Activity。

5、data属性匹配规则

data:指定数据的URI或者数据MIME类型他的值通常与Intent的action属性有关联。
<intent-filter>
<data android:mimeType="video/mpeg" android:scheme="http..."/>
    <data android:mimeType="audio/mpeg" android:scheme
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值