安卓核心六Intent对象

安卓核心六Intent对象

  • 简介:Intent意图,作用主要是激活系统组件,以及在系统组件之间传递数据。
  • 核心属性:
    • 1) ComponentName:组件名称,ComponentName用于激活系统组件时,指定被激活的组件名称
    • 2) Extra:附加数据,Extra用于向Intent对象内部封装数据,当该Intent被用于激活组件时,被激活的组件就可以拿到该Intent,从而获取之前封装的数据。
    • 可以在Intent中直接封装的数据类型相对比较有限,大致包括:基本数据类型,基本数据类型的数组,基本数据类型的包装类的ArrayList,CharSequence,CharSequence的数组,ArrayList,Parcelable接口的实现类,Parcelable接口的实现类的数组
    • 3) Action:动作,用于激活类名未知的系统组件(例如Activity、Service等),Action的值是String类型的数据,应该由被激活的组件的设计者提供
    • 4) Data:数据,该属性通常与Action同时使用,该属性的类型是Uri类型,Uri类型的数据可以通过Uri.parse(String)得到,并且,Uri类型的数据的字符串形态相对是固定的格式,例如”tel:10086”
  • 显式意图与隐式意图
    • 显式意图,显式的指定了Intent的ComponentName属性,例如:new Intent(this, SecondActivity.class);
    • 隐式意图,显式的指定了Intent的Action属性,例如:intent.setAction(“android.intent.call”);
      以上2种意图是冲突的,当使用显式意图时,隐藏意图的相关配置是无效的
      PS:隐式意图可以实现跨进程激活组件,而显式意图只能激活自身应用程序的组件
  • IntentFilter(意图过滤器)
    • IntentFilter是对Intent进行过滤的工具,只有匹配的Intent才认为是许可的,则许可的Intent可以激活配置了该IntentFilter的组件。
    • 如果某个Activity需要设置为可以被隐式意图激活,则需要在AndroidManifest.xml的对应的Activity节点下配置节点,并在节点下至少添加1个节点和1个节点,其中,节点中的name属性值可以自由定义,将表现为激活当前Activity时需要指定的Intent的Action属性值,节点的name属性值必须是”android.intent.category.DEFAULT”。
    • IntentFilter的过滤规则:IntentFilter中配置的Action和Category属性,比需要进行匹配验证的Intent中的同样的属性,只能多,不能少。
  • Extra属性:putExtra(”name”,”value”);这个方法是向extra中添加数据,有多种重载方法;getextra,返回值是一个Bundle对象,Bundle对象会在稍后介绍
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值