美文网首页
Intent详解

Intent详解

作者: 吃饱的疯子 | 来源:发表于2015-09-27 11:04 被阅读344次

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>.

相关文章

网友评论

      本文标题:Intent详解

      本文链接:https://www.haomeiwen.com/subject/rjswcttx.html