Intent的作用
1. 激活系统组件 startActivity(Intent) startService(Intent) / stopService(Intent) bindService(Intent, ServiceConnection, int) 2. 在系统组件之间传递数据
Intent的属性
1. ComponentName:组件名称 用于显式的指定被激活的组件,在Intent显式的激活系统组件时,都是通过ComponentName属性来完成的,但是,通常并不直接使用ComponentName对象,而是通过Intent的构造方法或者setClass() / setClassName()间接的设置ComponentName属性。 如果指定了ComponentName属性,则相关隐式激活组件的配置是无效的。 Intent intent = new Intent(this, SecondActivity.class); startActivity(intent); 相关方法: ComponentName的构造方法 Intent的构造方法 Intent的setClass()与setClassName()方法 2. Action:动作 用于隐式的指定被激活的组件,被激活的组件可以是其它应用程序的组件 相关方法: Intent的构造方法 setAction(String) 3. Data:数据 用于封装数据,通常与Action同时使用。 该属性是Uri类型的,可以通过Uri.parse(String)获取该类型的数据 4. Category:分类 用于Intent与IntentFilter的过滤 5. Extra:附加数据 Extra属性的类型是Bundle,而Bundle的本质是操作HashMap<String, Object>,由于Bundle中的Map不可以被直接操作,且Bundle提供了一系列API向Map中封装数据,而Intent的Extra是间接操作Map的,所以,Intent的Extra属性可以封装Bundle中约定的数据类型的数据。 相关方法: put系列方法 get???系列方法 6. Flag:标识 通常用于激活Activity时,指定特殊的参数 相关方法: setFlags(int) addFlags(int)
Intent与IntentFilter