Android Intent 基本使用及对象构成
2013-03-18 13:25
309 查看
Intent
Intent基本使用
Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcast。
具体方法如下表:
组件名称 | 方法名称 |
Activity | startActivity() startActivityForResult() |
Service | startService() bindService() |
Broadcasts | sendBroadcast() sendOrderedBroadcast() sendStickyBroadcast() |
向
(也可以向
startActivityForResult()的activity的一些信息。)
[b]2.启动Service:[/b]
向
类似的,向
[b]3.发起广播Broadcast[/b]
可以向下面的广播方法传递Intent对象来发起广播:
Intent在寻找目标组件时有两种方法:
第一种,显式调用,通过Componentname直接指定;
第二种,隐式调用,没有明确指定目标组件的名称,那么就要通过一定的条件过滤筛选。
启动activity、service和broadcast的消息系统是没有任何重合的,即,一个要启动activity的Intent对象是绝对不会启动一个service的。
Intent对象构成
Intent对象由以下六个部分组成:Componentname
Action
Data
Category
Extras
Flags
Componentname
Componentname即组件名称,是要处理这个Intent对象的组件名称。组件名称对象由
组件名称通过
需要注意的是Componentname是一个可选项,如果被设置,那么Intent对象就显式指定了要转向的组件,如果没有被设置,则Intent对象需要根据其他信息进行筛选查找。
Action
Action是指Intent要完成的动作,是一个字符串常量。在Intent类里面定义了很多Action常量,其中有:
也可以自己定义Action常量,自定义的常量需要加上你的应用的包名作为前缀。
Action在很大程度上决定了Intent的其他部分是如何构造的,尤其是
使用
Data
Data属性是执行动作的URI和MIME类型,不同的动作有不同的数据规格。比如,Action是ACTION_EDIT时,数据域将是文档的URI;Action是ACTION_CALL时,数据域是tel:URI,带有要拨打的电话号码;如果Action是ACTION_VIEW,则数据域是http:URI。
当匹配intent和能够处理intent所带的数据的组件时,知道数据类型(MIME类型)是很重要的。比如,一个展示图像的组件不应该被叫去播放一个音频。
很多情况下,从URI可以看出数据类型,比如content:URIs,表示数据是在设备上,但是是由contentprovider控制。
数据类型也可以显式指定,比如
Category
Category是一个字符串,提供了额外的信息,有关于能够处理这个Intent对象的组件种类。一个Intent对象中可以包含任意数量的category描述信息。
Intent类中也定义了一些Category常量:
与category相应的方法有添加
Extras
传递给Intent的额外数据,以Bundle的形式定义,就是一些键值对。就好像一些动作和特定的数据URI对应,一些动作和特定的extras对应。比如ACTION_TIMEZONE_CHANGEDintent对象有一个"
time-zone"的extra来确认新的时区;
ACTION_HEADSET_PLUG有一个"
state"extra表示耳机是否插入,还有一个"
name"extra关于耳机类型;
如果你要设计一个SHOW_COLOR动作,那么extra中应该包含颜色值。
Intent对象有一系列的putXXX()函数用于放入各种数据类型,相应的也有一系列的getXXX()函数用于读取数据。
实际上,数据可以被作为一个Bundle对象被使用,利用
Flags
各种类型的Flag。很多是用来指定Android系统如何启动activity,还有启动了activity后如何对待它。所有这些都定义在Intent类中。参考资料
官方文档:博客:
相关文章推荐
- Android Intent 基本使用及对象构成
- 在Android中通过Intent使用Bundle传递对象
- Android编程实现全局获取Context及使用Intent传递对象的方法详解
- android中Service的基本用法和IntentService的使用
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android中级教程(二)之调用另一个Activity---Intent对象的使用!
- android中intent的基本使用方法
- Android使用Intent在Activity之间传递对象[Serializable或者Parcelable]
- android 通过Intent使用Bundle传递对象
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android进阶之使用Intent传递对象02
- Android中如何使用Intent在Activity之间传递对象[使用Serializable或者Parcelable]
- Android之使用 Intent 传递对象(一)Serializable 方式
- [Android基础]Android中如何使用Intent传递对象
- Android中Intent基本使用
- Android——Intent基本的使用
- Android中使用Intent进行窗体切换,并且传值和自定义类的对象详解
- **ANDROID**# 第七章图形与图像处理(静态处理) > Bitmap是有像素点构成的点阵图。 ------ ## 使用简单的图片 ---- * 通过Drawable对象进行访问。
- Android中关于使用Intent进行窗体切换,并且传值和自定义类的对象详解
- Android中级教程(二)之调用另一个Activity---Intent对象的使用!