Intent是一个动作的完整描述,包含了产生组件、接收组件和传递数据信息。Android中提供了Intent机制来协助应用间的交互与通讯。Intent不仅可用于应用程序之间,也可用于应用程序内部 的 Activity / Service之间的交互。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
Intent由动作、数据、分类、类型、组件和扩展信息等内容组成
Action属性用于描述Intent要完成的动作:
Data属性是执行动作的URI和MIME类型(执行的目标对象)
Action和data一般匹配使用(这两个属性是最重要的):
Category属性指明一个执行Action的分类(。例如 LAUNCHER_CATEGORY 表示Intent 的接受者应该在Launcher中作为顶级应用出现;而ALTERNATIVE_CATEGORY表示当前的Intent是一系列的可选动作中的一个,这些动作可以在同一块数据上执行。):
Component属性用于指明Intent目标组件的类名称
通常(隐式)intent是根据Intent中包含的其他属性的信息,比如Action、Data/Type、Category进行查找,最终找到一个与之匹配的目标组件。但是,如果指定了Component这个属性(显式),Intent则会 直接根据组件名查找到相应的组件