部分内容来自以下相关文章:http://liangruijun.blog.51cto.com/3061169/634411
http://www.cnblogs.com/engine1984/p/4146621.html

本文内容包括

  • Intent简介
  • Intent属性
  • Intent过滤器简介

Intent简介

1. Intent的介绍
Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。

2. Inten启动组件的方法
Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcasts。具体方法如下:

组件名称 方法名称
Activity startActivity()
Service startService()
bindService()
Broadcasts sendBroadcasts()
sendOrderdBroadcasts()
sendStickyBroadcasts()

3. Intent的属性

  • 动作(Action)
  • 数据(Date)
  • 种类(Category)
  • 额外(Extra)
  • 标记(Flag)
  • 类型(Type)
  • 组件(Compent)
    其中最常用的有Action属性和Data属性。

Intent的属性

1. Action属性

action是指Intent将要执行的动作,是一个字符串常量。在广播Intent中,Action用来表示已经发生即将报告的动作。

  • setAction()设置
  • getAction()方法读取

- 标准Activity动作

通常使用Context.startActivity()方法启动Activity

- 标准Broadcast(广播)动作

通常使用Context.registerReceiver()方法或配置文件中的< receiver>标签

2. Data属性
· 如果动作是ACTION_EDIT,数据应该包含用来编辑的文档的URI。
· 如果动作是ACTION_CALL,数据应该是包含呼叫号码的tel:URI。
· 如果动作是ACTION_VIEW而且数据是http:URI,接收的Activity用来下载和显示URI指向的数据。

  • setData()指定数据的URI
  • setType()制定数据的MIME类型
  • setDataAndType()可同时设置URI和MIME类型
  • getData()读取URI
  • getType()读取MIME类型

3. Category属性

种类是字符串常量,是一个执行动作action的附加信息。在Intent对象中可以增加任意多个种类描述。

  • addCategory()在Intent对象中添加种类
  • removeCategory()删除上次增加的种类
  • getCategories()获取当前对象的所有种类

4. Extra属性

Extra属性是添加一些组件的附加信息。比如,如果我们要通过一个Activity来发送一个Email,就可以通过Extra属性来添加subject和body。

  1. putExtra()添加额外信息
  2. getExtra()读取额外信息

5. Flag属性

整数类型,表示不同种类的标记。多数用于指示Android系统如何启动Activity(例如,Activity该属于哪个Task)以及启动后如何对待(例如,它是否属于近期的Activity列表)。

6. Type属性

Type属性显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。

7. Compent属性

Compent属性指定Intent目标组件的类名称。通常 Android会根据Intent 中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果 compent这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性以后,Intent的其它所有属性都是可选的。


Intent过滤器简介

Activity、Service和BroadcastReceiver能定义多个Intent过滤器来通知系统它们可以处理哪些隐式Intent。每个过滤器描述组件的一种能力,以及该组件可以接收的一组Intent。实际上,过滤器接收需要类型的Intent,拒绝不需要类型的Intent,但是仅限于隐式Intent。显式Intent无论其内容总可以发送给它的目标,过滤器并不干预。但是,隐式Intent只有在通过组件的Intent过滤器之后才能发送给组件。

更多相关文章

  1. android获取屏幕的尺寸,宽度和高度
  2. Android(安卓)- Intent与IntentFilter
  3. Android中横竖屏切换时Activity的生命周期
  4. 使用internal(com.android.internal)和hidden(@hide)APIs – Part 1
  5. Android获取应用信息判断网络连接返回桌面及卸载apk结束进程等的
  6. Android(安卓)activity exported属性理解
  7. Activity 的Managing Tasks属性
  8. Android组件Activity中的View绘画和动画(Animation)是否会重画?
  9. Android(安卓)HorizontalScrollView和ScrollView 水平滚动 垂直

随机推荐

  1. [置顶] android中OnScrollListener的详解
  2. Android之dip与px互转
  3. Android:WebView
  4. Phonegap开发Android版本的二维码扫码
  5. Android自定义Toast之WindowManager
  6. android通过查询电话号码获取联系人头像
  7. 分享Android仿刮奖效果控件
  8. Android 8.0悬浮窗适配问题 报错:android
  9. Android增加
  10. Android实现震动功能