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