文档介绍:Intent和IntentFilter详解
Intent用于启动Activity,Service,以及BroadcastReceiver三种组件,同时仍是组件之间通讯的重要媒介。
使用Intent启动组件的优
category属性也是一个字符串,用于指定一些目标组件需要知足的额外条件。Intent对象中可以包括任意多个category属性。Intent类也预约义了一些category常量,开发者也可以自定义category属性。
Intent类的addCategory( )方法为Intent添加Category属
性,getCategories( )方法用于获取Intent中封装的全部category。
以下是Intent类中预约义的部分category:
*Y_HOME--表示目标activity一定是一个显示homescreen的
activity;
*Y_*R--表示目标activity可以作为task栈中的初始activity,常与ACTION_MAIN配合使用;
*Y_GADGET--表示目标activity可以被作为另一个activity的一部分嵌入。
Intent的Data属性
data属性指定所操作数据的URI。data经常与action配合使用,若是action为ACTION_EDIT,data的值应该指明被编写文档的URI;如
果
action为ACTION_CALL,data的值应该是一个以"tel:"开头并在其
后附带号码的URI;若是action为ACTION_VIEW,data的值应该是一个以"http:"开头并在此后附带网址的URI。。。
Intent类的setData( )方法用于设置data属性,setType( )方法用于设置data的MIME种类,setDataAndType( )方法可以同时设定二者。可以经过getData( )方法获取data属性的值,经过getType( )方法获取data的MIME种类。
Intent的Extra属性
经过Intent启动一个component时,经常需要携带一些额外的数据过去。携带数据需要调用Intent的putExtra( )方法,该方法存在多
个重载方法,可用于携带基本数据种类及其数组,String种类及其数
组,Serializable种类及其数组,Parcelable种类及其数组,Bundle种类等。Serializable和Parcelable种类代表一个可序列化的对象,Bundle
与Map近似,可用于储藏键值对。
Intent的Flag属性
flag属性是一个int值,用于通知android系统怎样启动目标
activity,也许启动目标activity此后应该采纳怎样的后续操作。全部的
flag
都在
Intent
类中定义
,
部分常用
flag
以下:
task
FLAG_*Y_NEW_TASK--通知系统将目标
的初始activity;