Intent详解

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 是 Android 非常常用的一个用于组件间互相通信的信息对象,常用于启动组件和传递数据,大部分的程...
    seven_Android阅读 34,901评论 1 38
  • Intent Intent介绍 Intent是Android应用组件之间通信的消息对象,它通常表明了两个通信组件的...
    whyles阅读 3,474评论 0 4
  • Intent 意图Android 四大组件的纽带,它的运行机制是(Run-time-binding)运行时绑定机制...
    Lost_Robot阅读 3,561评论 0 0
  • 夜真木讷 若不是那白日开玩笑般的 推它一把 它的初吻 也不会 给了星星 月光则是个十足十的情圣 看它轻柔的 一把抱...
    SillyG阅读 1,469评论 2 1
  • 为了创造健康,你需要照顾三个基本方面——食物、活动、休息。 正确地吃 关于食物,一个最重要的方面是你...
    Soyang100阅读 3,418评论 0 0