Android Intent简介


前言

Intent 是 Android 非常常用的一个用于组件间互相通信的信息对象,常用于启动组件和传递数据(在Activity之间,在Activity和Service之间,在Activity和Broadcast之间)。Intent 主要分为显式 Intent 和隐式 Intent,另外在Android 5.0之后的系统, Service 只能通过显式 Intent 启动,同时启动 Service 时,应始终指定组件名称,否则会报错。

元素名称设置方法说明
ComponentsetComponent()指定Intent的来源和目的
ActionsetAction()指定Intent发向的组件的主要动作
DatasetData()指定动作要操纵的数据路径
CategoryaddCategory()指定目标组件的类型
TypesetType()指定Data类型的定义
ExtraputExtra()指定Intent 携带附加数据,也是组件间互相传递信息比较常见的做法
FlagsetFlag()指定启动方式

一、显式Intent

声明一个Intent对象时,要指定两个参数,分别是跳转的来源页面和接下来要跳转到的页面类。具体声明方法:

//        调用构造函数直接创建Intent
        Intent intent = new Intent(this, ResponseActivity.class);
//        调用setClass方法
        Intent intent1 = new Intent();
        intent1.setClass(this, ResponseActivity.class);
//        调用setComponent方法
        Intent intent2 = new Intent();
        ComponentName componentName = new ComponentName(this, ResponseActivity.class);
        intent2.setComponent(componentName);

二、隐式Intent

1.使用方法

如果不希望直接暴露源码类名,可以事先定义好动作名称,让系统去模糊匹配。这个动作名称可以是自己定义的,也可以是系统已有的,系统动作取值说明:

在这里插入图片描述

这个动作名称通过setAction方法指定,也可以直接通过构造函数生成,另外由于是通过模糊匹配,可以使用setData和addCategory方法来给定详细的路径

        Intent intent3 = new Intent();
//        使用系统动作,直接拨号
        intent3.setAction(Intent.ACTION_CALL);
        String phone = "";
        Uri uri = Uri.parse("tel: " + phone);
        intent3.setData(uri);
        startActivity(intent3);

2.配置过滤器

AndroidManifest.xml里面的intent-filter就是xml的过滤器,如下是在主页面常见的Action和Category的过滤条件

在这里插入图片描述


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值