Android-Intent(意图)

1.什么是Intent?

三个应用程序的核心组件Activity、service和BroadCast Receiver-通过消息激活,这个消息就称为意图。

Intent的工作,就是在各大组件传递数据、传递消息

2.数据传递

语法:Intent.putExtra(key,value);

2-1传递基本数据类型:intent.putExtra("age",15);

 intent.getIntExtra("name");

2-2传递对象类型:注意:传递兑现需要实现Serializable或者是Parcelable接口

intent.putExtra("student",student);

Student student=(Student)intent.getSerializableExtra("student");

2-3传递集合类型:注意:集合中的对象需要实现Parcelable接口

intent.putExtra("list",list);

代码在Activity之间数据传递里面写到有


传递数据其实Intent的一个兼职工作,Intent的主要工作是在各大组件中传递消息


3.消息传递

Intent包含的内容:

(1)Component name(组件名称):Intent intent=new Intent();

ComponentName cn=new ComponentName(this,SecondActivity.class);

intent.setComponent(cn);

这种方式被称为显式Intent

(2)Action(动作):intent.setAction(Intent.ACTION_VIEW);

这种方式被称为隐式Intent

(3)Data(操作的数据):Data都是URI类型的数据

(4)Category(分类信息):如果希望Activity能够被隐式启动,则必须加个DEFAULT分类信息

(5)Extras:额外的附加信息

(6)Flags:标志位

Component name,Action,Data,Category四个会与Intent-filter联合使用

4.Intent-filter的匹配模式

①如果Intent-filter中没有指定数据,则不会匹配包含任何数据或数据特征的Intent

②如果Intent设置了Action,那么Intent-filter必须设置该Intent属性,没有action则与所有Intent不匹配

③数据类型:要匹配一种mineType,传入Intent的数据类型必须是Intent-filter中指定的类型之一

④Intent包含的category必须在对应的Intent-filter中设置才能生效。Filter中也可以包含更多的category,没有category则只能与没有提及任何类别的Intent匹配

⑤如果传入的Intent为隐式Intent,startActivity()只会搜索定义了DEFAULT类别的Activity


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值