Intent主要有三个基本的使用用例:
1.启动一个Activity
2.启动一个Service
3.发送一个broadcast
Intent 类型
1.Explicit intents
在使用上,根据知道的类名去启动一个Activity或Service。eg.更具用户的响应去打开activity,开启一个服务在后台下载文件。
2.Implicit intents
不是制定一个明确的组件,而是声明一个通用的执行动作,它允许一个组件从另一个应用程序来处理它。eg.如果你想在地图上显示用户的位置,你可以用隐示意图显示请求一个其他可以用的应用显示具体位置。
如果启动一个显示意图,系统会明确的打开,启动。如果启动一个隐示意图,需要在可以启动的组建在 Manifest 中添加 intent filters 。当启动时,系统会从应用中找出 能匹配的意图。如果有多个,用户需要选择打开。
注:在android5.0以后,启动一个服务必须是Explicit intents。
以下 form: http://liangruijun.blog.51cto.com/3061169/634411/
1.Intent的Action属性
Action是指Intent要完成的动作,是一个字符串常量。
2.Intent的Data属性
Intent的Data属性是执行动作的URI和MIME类型,不同的Action有不同的Data数据指定。比如:ACTION_EDIT Action应该和要编辑的文档URI Data匹配,ACTION_VIEW应用应该和要显示的URI匹配。
3.Intent的Category属性
Intent中的Category属性是一个执行动作Action的附加信息。比如:CATEGORY_HOME则表示放回到Home界面,ALTERNATIVE_CATEGORY表示当前的Intent是一系列的可选动作中的一个。
4.Intent的Type属性
Intent的Type属性显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。
5.Intent的Compent属性
Intent的Compent属性指定Intent的的目标组件的类名称。通常 Android会根据Intent 中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果 component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性以后,Intent的其它所有属性都是可选的。
6.Intent的Extra属性
Intent的Extra属性是添加一些组件的附加信息。比如,如果我们要通过一个Activity来发送一个Email,就可以通过Extra属性来添加subject和body。
接收一个隐示意图:
接收意图的组件需要在Manifest中相应组件位置添加<inter-filer>.
网友评论