Intent Android 详解
2010-09-21 01:45:00 来源:WEB开发网核心提示:ACTION_HEADSET_PLUG broadcast receiver 一个耳机正被插入或者拔出. ACTION_SCREEN_ON broadcast receiver 屏幕被点亮. ACTION_TIMEZONE_CHANGED broadcast receiver 时区设置改变. 你也可以定义自己的acti
ACTION_HEADSET_PLUG broadcast receiver 一个耳机正被插入或者拔出. ACTION_SCREEN_ON broadcast
receiver 屏幕被点亮. ACTION_TIMEZONE_CHANGED broadcast receiver 时区设置改变.
你也可以定义自己的action字符串用来启动你的应用程序.
自定义的action应该包含应用程序的包名.例如"com.example.project.SHOW_COLOR".
action很大程度上决定了intent的另外部分的结构, 就像一个方法名决定了它接受的参数和返回值一样. 因此, 最好给action一个最能反映其作用的名字.
一个intent对象中的action是使用getAction()和setAction()来读写的. Data
需要操作的数据的URI和它的MIME(多用途互联网邮件扩展,Multipurpose Internet Mail Extensions)类型. 例如,
如果action为ACTION_EDIT, 那么Data将包含待编辑的数据URI. 如果action为ACTION_CALL,
Data将为tel:电话号码的URI. 如果action为ACTION_VIEW, 则Data为http:网络地址的URI.
当将一个intent和一个组件相匹配时, 除了URI外数据类型也很重要. 例如, 一个显示图片的程序不应该用来处理声音文件. 数据类型常常可以从URI推断,
特别是content:URI, 它表示该数据属于一个content provider. 但数据类型也可以被intent对象显示声明.
setData()方法设置URI, 而setType()方法指定MIME类型, setDataAndType()设置数据URI和MIME类型.
它们可以使用getData()和getType()来读取. Category 一个字符串,包含了关于处理该intent的组件的种类的信息.
一个intent对象可以有任意个category. intent类定义了许多category常数, 例如: 常量 含义 CATEGORY_BROWSABLE
目标activity可以使用浏览器来显示-例如图片或电子邮件消息. CATEGORY_GADGET
该activity可以被包含在另外一个装载小工具的activity中. CATEGORY_HOME
该activity显示主屏幕,也就是用户按下Home键看到的界面. CATEGORY_LAUNCHER
该activity可以作为一个任务的第一个activity,并且列在应用程序启动器中. CATEGORY_PREFERENCE
该activity是一个选项面板. addCategory()方法为一个intent对象增加一个category,
removeCategory删除一个category, getCategories()获取intent所有的category. Extras
为键-值对形式的附加信息. 例如ACTION_TIMEZONE_CHANGED的intent有一个"time-zone"附加信息来指明新的时区,
而ACTION_HEADSET_PLUG有一个"state"附加信息来指示耳机是被插入还是被拔出.
intent对象有一系列put...()和set...()方法来设定和获取附加信息. 这些方法和Bundle对象很像.
更多精彩
赞助商链接