Intent意图

Intent在Android中起到连接四大组件的关键作用,通过它传递数据、指定动作、类别等信息。Intent由action、category、data、type、extras和flags等属性组成,常用于启动Activity、Service和Broadcast Receiver。在Intent中,可以通过setData和setType指定数据和类型,使用extras传递额外信息,flags用于设定Activity的启动模式。理解Intent的显式和隐式调用对于Android开发至关重要。
摘要由CSDN通过智能技术生成

 1.通过Intent传递数据(打开Activity)

2.Action动作

3.Categorg类别

4.data数据

5.type数据类型

6.Extras扩展信息数据

7.Flags标志位Activity的启动模式

8.常用的系统Intent

Intent组件虽然不是四大组件,但确是连接四大组件的桥梁,学习好这个知识也是非常重要.

android提供了Intent机制来协助应用间的交互和通讯,或者采用更准确的说法是,Intent不仅可用于应用之间,也可以用于应用内部的activity,service和broadcast receiver之间的交互。Intent这个单词的本意是:"目的,意图,意向"。

activity、service和broadcast receiver之间是通过Intent进行通信的,而另外一个组件Content Provider本身就是一种通信机制,

不需要通过Intent。我们来看下面这个图就知道了

如果Activity1需要和Activity2进行联系,二者不需要直接联系,而是通过Intent作为桥梁。通俗来讲,Intnet类似于中介、媒婆的角色。

对于向这三种组件发送intent有不同的机制:

1.使用Context.startActivity()或 Activity.startActivityForResult(),传入一个intent来启动一个activity。  
2 将intent对象传给Context.startService()来启动一个service或者传消息给一个运行的service。
3.将intent对象传给 Context.bindService()来绑定一个service。
4.将intent对象传给 Context.sendBroadcast(),Context.sendOrderedBroadcast(),或者Context.sendStickyBroadcast()等广播方   法,则它们被传给 broadcast receiver。

Intent的相关属性:

   Intent由以下各个组成部分:
  component(组件):目的组件
  action(动作):用来表现意图的行动
  category(类别):用来表现动作的类别
  data(数据):表示与动作要操纵的数据
  type(数据类型):对于data范例的描写
  extras(扩展信息):扩展信息
  Flags(标志位):期望这个意图的运行模式

 Intent类型分为显式Intent(直接类型),隐式(间接类型)。官方建议使用隐式Intent。 Component属性明确指定Intent的目标组件  的类名称。(属于直接Intent)

 相比与显示Intent,隐式Intent则含蓄了许多,他并不明确指出我们想要启动哪一个活动,而是指一系列为抽象的action和category的信息,然后交由系统去分析这个Intent,并帮助我们找出最合适的活动去启动。

Activity和Intent Filter的匹配过程:

1.Component(组件)目标组件:

 Component属性明确指定Intent的目标组件的类名称.(直接属于Intent)

 如果Component这个属性有指定的话, 将直接使用它指定的组件。指定了这个属性以后,Intent的其他所有的属性都可以选择。

例如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值