【Android笔记】关于Intent

本文详细探讨了Android中的Intent,包括Intent的七大属性:组件、动作、类别、数据、数据类型、扩展信息和标志位。重点讲述了显式Intent的构造和使用,以及隐式Intent如何通过action、category和data来启动活动。同时,文章举例说明了隐式Intent如何实现跨应用启动,以及数据匹配和权限控制的相关问题。
摘要由CSDN通过智能技术生成


说明:Intent是“意图”的意思,Intent通过指明当前组件想要执行的动作,让系统知道我们的“意图”之后,完成的一系列操作,除此之外,Intent还可以在不同组件之间传递数据。Intent一般可被用于启动活动(Activity(startActivity(intent)))、启动服务(Service(startService(intent)))以及发送广播(Broadcast(sendBroadcast(intent)))等场景,本篇笔记主要记载Intent启动活动的知识。
Intent大致可以分为两种:显式Intent隐式Intent


一、Intent的七大属性

①ComponentName(组件):目的组件
②Action(动作):用来表现意图的行动
③Category(类别):用来表现动作的类别
④Data(数据):表示与动作要操纵的数据
⑤Type(数据类型):对于data范例的描写
⑥Extra(扩展信息):扩展信息
⑦Flags(标志位):期望这个意图的运行模式

按照分类可以分为以下三种:
1.用于启动:ComponetName(显式)、Action(隐式)、Category(隐式)。
2.用于传递数据:Data(隐式)、Type(隐式)、Extra(显式、隐式)。
3.用于规定启动模式:Flags.
有关七大属性讲解详见《Intent七大属性》


二、显式Intent

Intent有多个构造函数的重载,其中一个是:
Intent(Context packageContext,Class<?> cls)
第一个参数Context要求提供一个启动活动的上下文;
第二个参数Class指定想要启动的活动目标.
通过这个构造函数就可以构建出Intent的“意图”,最后调用startActivity()方法就可以启动目标活动了。

在MainActivity中重写onClick()方法:

@Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.start_aty2:
                Intent intent = new Intent(MainActivity.this,Aty2.class);
                startActivity(intent);
        }
    }

或者:

@Override
    public void onClick(View view) {
        Intent intent = new Intent();
        switch (view.getId()){
            case R.id.start_aty2:
                intent.setClass(MainActivity.this,Aty2.class);
                //或者调用setComponent方法说明“意图”,启动活动
                //intent.setComponent(new ComponentName(MainActivity.this,Aty2.class));
                startActivity(intent);
        }
    }

效果图:
主页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值