[android]Intent意图

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:www.163.com:8080/index.jsp

scheme:http---协议

host:www.163.com---主机

port:8080---端口

path:index.jsp---路径



你可能感兴趣的:(android,String,测试,filter,action,Path)