Android中Intent详解1
2015-10-16 14:20
453 查看
这几天一直在校招,我想找写程序的工作,也就是Java工程师或者Android的工程师,参加了多点的笔试,感觉有点可惜。笔试内容自我感觉不是很难,不过因为不是计算机专业的缘故,所以很多基础我还是不熟,比如Lunix系统的知识题我就完全不知道。还有就是一些基础的算法,我也不是很熟,就是拿笔写不出来。
瞬间感觉现在找一个科研岗位,好难呀。还是要不断学习。每一次面试没有结果都很难受。特别是我很想进入这个公司的时候。要是他们能看到我的博客,我真的很想告诉他们,虽然我基本功不好,可是我很愿意学习,在今后的道路上,我将超越很多很多很多人,创造价值。
话不多说,继续写学习笔记。
使用Intent和IntentFilter进行通信
前面我们知道,Intent的中文意思就是“意图”。
使用Intent的好处就是:减少了程序的耦合性(虽然还是不知道这样的好处到底体现在哪里,先记住以后再分析)
Intent对象大致包含Component、Action、Category、Data、Type、Extra和Flay这七个属性。
Component属性
Intent的Component属性需要接受一个ComponentName对象,ComponentName对象包含如下几个构造器:
ComponentName(Stringpkg, String cls)
ComponentName(Contextpkg, String cls)
ComponentName(Contextpkg, Class<?> cls)
然后:
ComponentName comp = new ComponentName(MainActivity.this,SecondActivity.class);
Intent intent = new Intent();
intent.setComponent(comp);
简写成:Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
上面三句用于创建ComponentName对象,并将给对象设置成Intent对象的Component属性。
Action。Category属性与Intent-filter配置
Intent的Action、Category属性的值都是一个普通的字符串。
其中Action代表是Intent所要完成的一个抽象“动作”,而Category则用于Action增加额外的附加类别的信息。通常两者结合使用。
<intent-filter.../>元素中通常包含如下元素:
0~N个<action.../>元素
0~N个<category.../>元素
0~1个<data.../>元素
Android系统内部提供了大量的标准的Action、Category常量,其中用于启动系统自带的程序组件。
Data、Type属性与intent-filter配置
Data属性通常用于向Action属性提供操作的数据。
Data属性接收一个Uri对象,一个Uri对象的格式通过如下字符串来表示:
(格式)scheme://host:port/path
Type属性用于指定的该Data属性所指定Uri对应的MIME类型,这种MIME类型可以是任意自定义的MIME类型,只要符合abc/xyz格式的字符串即可。
setType 调用后设置 mimeType,然后将 data 置为 null;
setData 调用后设置 data,然后将 mimeType 置为 null;
setDataAndType 调用后才会同时设置 data 与 mimeType。
AndroidManifest.xml文件中<data.../>元素指定如下属性
mimeTpye、scheme、host、port、path、pathPrefix、pathPattern
Extra属性
Extra属性通常用于多个Action之间进行数据交换,Intent的Extra属性值应该是一个Bundle对象,Bunlde对象就像一个Map对象,它可以存入多个key-value对,这样就可以通过Intent在不同的Activity之间进行数据交换了。
Flag对象
Intent的Flag属性用于为该Intent添加一些额外的控制旗标,Intent可调用addFlags()方法来添加控制旗标。
瞬间感觉现在找一个科研岗位,好难呀。还是要不断学习。每一次面试没有结果都很难受。特别是我很想进入这个公司的时候。要是他们能看到我的博客,我真的很想告诉他们,虽然我基本功不好,可是我很愿意学习,在今后的道路上,我将超越很多很多很多人,创造价值。
话不多说,继续写学习笔记。
使用Intent和IntentFilter进行通信
前面我们知道,Intent的中文意思就是“意图”。
使用Intent的好处就是:减少了程序的耦合性(虽然还是不知道这样的好处到底体现在哪里,先记住以后再分析)
Intent对象大致包含Component、Action、Category、Data、Type、Extra和Flay这七个属性。
Component属性
Intent的Component属性需要接受一个ComponentName对象,ComponentName对象包含如下几个构造器:
ComponentName(Stringpkg, String cls)
ComponentName(Contextpkg, String cls)
ComponentName(Contextpkg, Class<?> cls)
然后:
ComponentName comp = new ComponentName(MainActivity.this,SecondActivity.class);
Intent intent = new Intent();
intent.setComponent(comp);
简写成:Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
上面三句用于创建ComponentName对象,并将给对象设置成Intent对象的Component属性。
Action。Category属性与Intent-filter配置
Intent的Action、Category属性的值都是一个普通的字符串。
其中Action代表是Intent所要完成的一个抽象“动作”,而Category则用于Action增加额外的附加类别的信息。通常两者结合使用。
<intent-filter.../>元素中通常包含如下元素:
0~N个<action.../>元素
0~N个<category.../>元素
0~1个<data.../>元素
Android系统内部提供了大量的标准的Action、Category常量,其中用于启动系统自带的程序组件。
Data、Type属性与intent-filter配置
Data属性通常用于向Action属性提供操作的数据。
Data属性接收一个Uri对象,一个Uri对象的格式通过如下字符串来表示:
(格式)scheme://host:port/path
Type属性用于指定的该Data属性所指定Uri对应的MIME类型,这种MIME类型可以是任意自定义的MIME类型,只要符合abc/xyz格式的字符串即可。
setType 调用后设置 mimeType,然后将 data 置为 null;
setData 调用后设置 data,然后将 mimeType 置为 null;
setDataAndType 调用后才会同时设置 data 与 mimeType。
AndroidManifest.xml文件中<data.../>元素指定如下属性
mimeTpye、scheme、host、port、path、pathPrefix、pathPattern
Extra属性
Extra属性通常用于多个Action之间进行数据交换,Intent的Extra属性值应该是一个Bundle对象,Bunlde对象就像一个Map对象,它可以存入多个key-value对,这样就可以通过Intent在不同的Activity之间进行数据交换了。
Flag对象
Intent的Flag属性用于为该Intent添加一些额外的控制旗标,Intent可调用addFlags()方法来添加控制旗标。
相关文章推荐
- Android中异步任务机制AsyncTask的理解
- android AsyncTask介绍
- Android内存优化(使用SparseArray和ArrayMap代替HashMap)
- Android Drawable Resource学习(七)、TransitionDrawable
- Android Drawable Resource学习(六)、LevelListDrawable
- Android Drawable Resource学习(五)、StateListDrawable
- Android Drawable Resource学习(四)、LayerDrawable
- 解决Android Studio卡顿运行慢的完美方案
- 纯手工制作—Android原生手势锁
- Android系统overflow失效的BUG
- Android 命名规范 (提高代码可以读性)
- Android底层JNI中的JavaVM和JNIEnv对象
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- Android Drawable Resource学习(二)、BitmapDrawable和Bitmap
- Android Drawable Resource学习(一)、Drawable Resource简介
- android 多线程 示例
- 定制Android系统开发之三——跟着我实现系统服务
- Android性能专项测试之MAT
- Android性能相关常用命令收集
- Android 快速开发框架xUtils