英文里 Intent是“意向、打算”的意思,其实就是告诉别人你的意图的意思了,这么理解Android里面的Intent也就不难了。
书面化的解释是:
Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
intent和intention的区别:意思不同、用法不同、侧重点不同。
一、意思不同
1.intent意思:adj. 热切的; 专注的; 决心做(尤指伤害他人的事); 专心; 专注; n. 意图; 意向; 目。
2.intention意思:n. 打算; 计划; 意图; 目的;。
二、用法不同
1.intent用法:表示人或事物的名称。
例句:
He's intent on going to Australia.。
他热切希望到澳大利亚去。
2.intention用法:可以做主语、宾语、同位语、表语 、定语、状语、补语。
例句:
I held back not knowing his real intention.。
我有点犹豫不定,不知道他的真正意图是什么。
三、侧重点不同
1.intent侧重点:intent侧重于法律用词,常指某人怀有歹意而犯罪。
2.intention侧重点:intention侧重于普通用词,指某人内心产生的想做某事的想法,侧重内心活动。
to all intents and purposes。
.事实上 实际上;实质上;在任何一方面。
例句
: Energy under braking is, to all intents and purposes, wasted energy.。
实际上用于制动的能量就是在浪费。
for all intents and purposes。
从所有的这些看;而在各种目的和意图之下。
例句
1.It is, for all intents and purposes, impossible to stalk, find and photograph atiger there.。
在那儿,无论出于何种目的,是不可能跟踪、发现、拍摄到老虎的。
2.The 2008 transition, for all intents and purposes, failed.。
2008年的权利转换,对所有的意图和目的而言终告失败。
意图和意图过滤器Intents and Intent Filters。
一个应用程序的三个核心组件-活动,服务和广播接收器是通过消息即意图(Intents)来激活的。Intent息传送是相同或不同应用中组件运行时晚绑定的一种机制。意图本身,一个意图对象,是一个包含被执行操作抽象描述的被动的数据结构-或者,对于广播而言,是某件已经发生并被声明的事情的描述。存在不同的机制来传送意图到每种组件中:
• 一个意图对象是传递给Context.startActivity()或者Activity.startActivityForResult()来启动一个活动或者让一个存在的活动去做某些新的事情。
• 一个意图对象是传递给Context.startService()来发起一个服务或者递交新的指令给运行中的服务。类似的,一个意图能被传递给Context.bindService() 来在调用组件和一个目标服务之间建立连接。作为一个可选项,它可以发起这个服务如果还没运行的话。
• 传递给任意广播方法(例如Context.sendBroadcast(),Context.sendOrderedBroadcast(), 或者Context.sendStickyBroadcast())的意图对象被传递给所有感兴趣的广播接收者。许多种广播产生于系统代码。
在每个例子里,Android系统找到合适的活动,服务,或者一组广播接收者来回应这个意图,必要时实例化它们。这些消息传送系统没有重叠:广播意图仅被传递给广播接收者,永远不会给活动或者服务。一个传送给startActivity()的意图是只会被传递给一个活动,永远不会给一个服务或广播接收者,如此类推。
这篇文档以意图对象的描述开始,然后描述Android映射意图到组件的规则-如何解决哪个组件应该接收一个意图消息。对于没有显式命名一个目标组件的意图,这个过程包括对照与潜在目标相关联的意图过滤器来测试这个意图对象。
意图对象Intent Objects。
一个意图Intent对象是一堆信息。它包含接收这个意图的组件感兴趣的信息(例如将要采取的动作和操作的数据)再加上Android系统感兴趣的信息(例如应该处理这个意图的组件类别和如何启动一个目标活动的指令):
组件名称Component name 。
应该处理这个意图的组件名字. 这个字段是一个ComponentName对象- 一个组合物:目标组件的完全合格的类名 (比如"com.example.project.app.FreneticActivity") 以及应用程序描述文件中设置的组件所在包的名字(比如, "com.example.project"). 这个组件名字的包部分和描述文件中设置的包名字不一定要匹配。
组件名字是可选的。如果被设置了,这个意图对象将被传递到指定的类。如果没有, Android使用另外的意图对象中的信息去定位一个合适的目标- 请看本文稍后描述的意图解析Intent Resolution。
组件名字通过如下方法:setComponent(),setClass(), 或者setClassName()设置并通过getComponent()读取。