android intent 机制,Android Intent详解

6f31fdfc20033ce7ce4db4460bf19617.png

一、什么是Intent

1、Intent的概念:

Android提供了Intent机制来协助应用间的交互与通讯,Intent不仅可以应用于应用程序之间,也可以应用程序内部的activity、server、broadcastreceive之间。 Intent:目的,意图

Intent是一种运行时绑定机制(runtime binding),他能在程序运行的过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或意愿,Android会选择相应的组件来答复。

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

使用Context.startActivity() 或 Activity.startActivityForResult(),传入一个intent来启动一个activity。使用 Activity.setResult(),传入一个intent来从activity中返回结果。

将intent对象传给Context.startService()来启动一个service或者传消息给一个运行的service。将intent对象传给 Context.bindService()来绑定一个service。

将intent对象传给 Context.sendBroadcast(),Context.sendOrderedBroadcast(),或者Context.sendStickyBroadcast()等广播方法,则它们被传给 broadcast receiver。

二、Intent的相关属性:

Intent由以下各个组成部分:

component(组件):目的组件

action(动作):用来表现意图的行动

category(类别):用来表现动作的类别

data(数据):表示与动作要操纵的数据

type(数据类型):对于data范例的描写

extras(扩展信息):扩展信息

Flags(标志位):期望这个意图的运行模式

Intent类型分为显式Intent(直接类型)、隐式Intent(间接类型)。官方建议使用隐式Intent。上述属性中,component属性为直接类型,其他均为间接类型。

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

Activity 中 Intent Filter 的匹配过程 :

dcaa8bac5aa637a442bd3c11937a1a86.png

1、component(组件):目的组件

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

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

~~

例如,启动第二个Activity时,我们可以这样来写:

button1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

//创建一个意图对象

Intent intent = new Intent();

//创建组件,通过组件来响应

ComponentName component = new ComponentName(MainActivity.this, SecondActivity.class);

intent.setComponent(component);

startActivity(intent);

}

});

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值