Intent

Intent

1. Intent简介

An intent is an abstract description of an operation to be performed. It can be used with startActivity to launch an Activity, broadcastIntent to send it to any interested BroadcastReceiver components, and Context.startService(Intent) or Context.bindService(Intent, ServiceConnection, int) to communicate with a background Service.

Intent用以在APPActivityServiceBroadcast间的通信,包含了一系列抽象的操作描述,具有几大功能——启动Activity、启动Service、发送Broadcast

在这里插入图片描述

2. Intent 属性

主要属性如下图:

在这里插入图片描述

  • ComponentName

    要处理的应用组件的名称,为null时系统自动找一个。
    可以通过:public Intent setComponent (ComponentName component)方法设置

    Intent intent = new Intent();
    ComponentName c = new ComponentName("<Activity所在包>", "<Activity含包完整名称>");
    intent.setComponentName(c);
    startActivity(intent);
    
  • ActionData

    说明要进行的动作及该动作所需的信息,例如拨打电话、发送短信,不同Action有不同的Data,如下图。

    在这里插入图片描述

    1. 设置Actionintent.setAction(<Intent.action>)

    2. 设置Dataintent.setData(<Uri data>)

    3. 设置完毕后startActivity(intent)即可

      注意,涉及到权限问题,需要先在mainfest中注册权限

  • ActionCategory

    用以启动其他Activity

    1. 设置Actionintent.setAction(<Intent.action>)

    2. 设置Categoryintent.addCategory (String category)

    3. 设置完毕后startActivity(intent)即可

  • Extras

    多个Activity数据交换时,在Intent中借助Bundle存储数据。

    • 保存数据:intent.putExtras(Bundle extras),或者putExtra(key, value),返回相同Intent对象,用以链式调用。
    • 提取数据:Bundle getExtras (),或者getXXXExtra(如getDoubleExtra(...)),返回Bundle对象
  • Flags

    指示安卓程序应该如何启动另一个Activity,指定Activity启动后是否在最近启动Activity列表中(Task)等等…

    • 设置Flagsintent.setFlag(<intent.FLAG>)

3. Intent 种类

分为显示和隐式两种。

3.1 显示Intent

显示的启动一个Activity

Intent intent = new Intent(<ThisActivity>.this, <NextActivity>.class)

3.2 隐式Intent

不指定Activity,而是通过设置Actioncategorydata属性,让安卓系统找到一个目标Activity。

在这里插入图片描述

4. Intent 过滤器

根据Activity的actioncatogory等属性,对于Intent进行筛选、过滤,用以隐式Intent

在这里插入图片描述

  • 配置:通过<intent-filter>标签在AndroidManiFest.xml文件中配置

    在这里插入图片描述
    组合使用参考Intent属性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值