您的位置:首页 > 移动开发 > Android开发

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()方法来添加控制旗标。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: