androdi组件之Intent

这是安卓学习的第二部分,如果你想从源代码学习,可以下载此压缩文件:

http://download.csdn.net/detail/u010798277/5669793

安卓组件之间信使——Intent

什么是Intent?
我们知道Intent可以让两个Activity之间切换,实际上,Intent是组件通信的“意图”。
安卓有三个重要的组件Service,BroadCast,Activity,其之间的启动与切换都与Intent有密切的关联
Activity:
startActivity(Intent intent);
startActivityForResult(Intent intent,int requstCode)
Service:
startService(Intent service)
binService(Intent service,ServiceCOnnection conn,int flags)
Braodcast
sendBroadCast(Intent intent)
sendBroadCast(Intent intent,String receivedPermission)
sendOrderedBroadCast(Intent intent,String,)
...


Intent的属性:
1--Component:
实际上我们已经经常使用component这个属性了,我们经常定义的Intent包含的就是component:
Intent intent=new Intent(activity1.activiity,activity2.class);
startActivity(intent)
这样等价于:
ComponnetnName comp=new CompnentName(activity1.this,activity2.class);
Intent intent=new Intent();
Intent.setComponent(comp);


2--Action与Category
Action意思就是完成的抽象的"动作",Category就是为Action附加信息,通常两者会联合起来使用。
在定义一个Intent的Action与Catagory属性后,我们只是知道当出现这个Action与Catagory时会触发一些”意图“,
但是究竟启动什么呢?我们需要在相应的组件中配置intent-filter,这样就启动了这个组件(一般是Activity)。
实际上安卓提供了许多标准的Action常量,大家可以查看安卓API:
这里列举一些常见的Action常量:
ACTION_VIEW :显示指定数据
ACTION_DAIL :显示拨号面板
ACTION_CALL :拨号
ACTION_EDIT :编辑指定数据
ACTION_MAIN :应用程序入口
ACTION_DELETE :删除指定数据
ACTION_SEND :发送指定数据


Intent intent=new Intent();
intent.setAction();
intent.addCatogory();


3--Data与Type
Data属性用于向Action属性提供操作的数据,Data是一个Uri对象,两者搭配能启动许多应用程序,实现许多功能.
例如:
ACTION_VIEW content://com.android.contacts/contacts.1 //显示id为1的联系人的信息
ACTION_DAIL content://com.android.contacts/1 //拨打联系人1的电话
ACTION_DAIL tel:13478819711 //拨打指定号码
Intent intent=new Intent();
intent.setData();
intent.setType();
//一般指定了Data,就不要指定Type了,因为安卓会自动解析数据类型


4--Extras属性:
用于数据交换,为Extra属性值就是一个Bundle对象,(在Activity之间数据交换是我们已经介绍过),Bundle对象就想是一个Map对象,
存入多个Key-Value对。
Intent intent=new Intent();
intent.putExtras();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值