android学习5:使用Intent和IntentFlter进行通信

1、Intent对象详解
1)使用Intent启动系统组件

依靠Intent来启动三种重要的组件,Activity,Service,BroadcastRecevier。

Intent对象包含Comonent,Action,Data,Category,Extra,Flag等属性,其中ComponentName来指定需要启动的目标组件,Extra用于携带需要交换的数据。

2、Intent属性及intent-filter配置

Android根据Intent启动指定组件,启动什么组件由属性决定。

1)Component属性

Component属性接受一个ComponentName对象。

new Intent().setComponent(new ComponentName(ComponentAttt.this,SecondActivity.class));
2)Action,Category属性与intent-filter配置
  • action表示要完成的抽象动作,动作的具体哪个组件实现不用管。取决于Activity配置,只要某个Activity的包含了该动作,这个Activity就可能被启动。
  • intent-filter元素是AndroidMANIFEST.XML文件activity元素的子元素。用来配置该Activity所能响应的Intent.
  • intent-filter元素通常可包含:0~N个action子元素,0~N个category子元素,0~1个data子元素
  • 当<activity…/>元素里的<intent-filter…/>子元素里包含多个<action.….>子元素(相当于指定了多个字符串)时,就表明该Activity能响应Action属性值为其中任意一个字符串的 Intent。
  • category属性:可通过一个字符串来表示启动窗口时符合的类别。
  • Intent要跳转的activity要包含,指定的action,category字符串
3)指定Action,Category调用系统Activity

activity,category包含的大量的常量。在ActionCateAttr类下。

4)Data,Type属性与intent-filter配置

Data向Action属性提供操作的数据,接受一个Uri对象,用如下形式的字符串表示:

content://com.android.contacts/contacts/1
content为前缀,//com.android.contacts/contacts/1表明操作id为1的联系人数据

Type属性明确指定Data属性所指定数据的类型或MIME类型。当不指定Data属性Type才会起作用。

指定了Action,data后,android将根据指定的数据类型来启动特定的应用程序,并对指定数据执行相应操作。

5)Extra属性

用于在多个Action之间进行数据交换,值为一个Bundle对象,Bundle对象就像一个Map对象,存入多个key-value对。

3、使用Intent创建Tab页面

添加Tab页面使用TabHost.TabSpec

setContent(int viewId):指定View组件设置成Tab也的Content

setContent(Intent intetn):将指定intent对应的Activity设置成Tab页的Content

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值