Intent—用于组件之间的跳转和数据传输
显示意图:—明确指出了目标组件的名称–需要知道组件的名称,更多应用在程序内部
Intent intent=new Intent(); intent.setClass(Context context,***.class);
Intent intent=new Intent(Context context,***.class);
ComponentName name=new CompoentName(Context context,***.class);
Intent intent=new Intent(); intent.setComponentName(name);
意图的属性:
action—对执行动作的描述,String类型,
data—对执行动作所要操作的数据的描述,android中采用Uri来表示数据
component—组件,显示指定Intent的目标组件名称
extra—附加信息,,除了data外,还可以通过extra添加附加信息,extra属性使用Bundle类型进行数据传递
putExtra(String key,value)—value类型:基本数据类型、基本类型数组、String String[] 、可序列化对象,bundle
flag—
隐式意图:—未明确指出目标组件的名称—使用Intent-filter来寻找与其相关的对象—广泛用于不同程序之间的传递
Intent intent=new Intent();
intent.setAction();—设置action,发送一种类型的action,可以让所有支持该类型的activity都收到
隐式意图的过滤:
action:
intent对象中最多只能有一个action
intent-filter中可以声明多个action
如果intent中包含的action,在filter中也有声明,通过测试
如果intent-filter中未声明action,该filter拒绝任何测试
如果intent-filter中未声明action,intent中也不包含任何action,通过测试
category:
intent中可以包含0到多个category
intent-filter中可以包含0到多个category
如果intent中声明的category是intent-filter中声明的category的子集,通过测试
对于传到setActivity()中的intent,会自动为其追加一个category:android.intent.category.DEFAULT
data(Uri):
http::8080/index.jsp
scheme:http—协议
host:主机
port:8080—端口
path:index.jsp—路径
如果困难是地上的荆棘,我们脱掉鞋子,光着脚笑笑,