文档章节

Intent(意图)

 梦想家Peng
发布于 2016/03/01 14:42
字数 688
阅读 12
收藏 0
点赞 1
评论 0

Intent的作用主要是激活系统组件,以及在系统组件之间传递数据。

Intent的核心属性:

1) ComponentName:组件名称

  ComponentName用于激活系统组件时,指定被激活的组件名称

2) Extra:附加数据

  Extra用于向Intent对象内部封装数据,当该Intent被用于激活组件时,被激活的组件就可以拿到该Intent,从而获取之前封装的数据。

  可以在Intent中直接封装的数据类型相对比较有限,大致包括:基本数据类型,基本数据类型的数组,基本数据类型的包装类的ArrayList,CharSequence,CharSequence的数组,ArrayList<String>,Parcelable接口的实现类,Parcelable接口的实现类的数组

3) Action:动作

  用于激活类名未知的系统组件(例如Activity、Service等)

  Action的值是String类型的数据,应该由被激活的组件的设计者提供

4) Data:数据

  该属性通常与Action同时使用,该属性的类型是Uri类型,Uri类型的数据可以通过Uri.parse(String)得到,并且,Uri类型的数据的字符串形态相对是固定的格式,例如"tel:10086"

5) Category:分类

  通常用于Intent与IntentFilter之间验证过滤,同一个Intent对象可以有多个Category属性值,每一个Intent对象将默认添加android.intent.category.DEFAULT这个Category属性

PS:Intent的属性还包括Type、Flag等。


显式意图与隐式意图

-------------------------------

显式意图,显式的指定了Intent的ComponentName属性,例如:new Intent(this, SecondActivity.class);

隐式意图,显式的指定了Intent的Action属性,例如:intent.setAction("android.intent.call");

以上2种意图是冲突的,当使用显式意图时,隐藏意图的相关配置是无效的

PS:隐式意图可以实现跨进程激活组件,而显式意图只能激活自身应用程序的组件


IntentFilter(意图过滤器)

-------------------------------

IntentFilter是对Intent进行过滤的工具,只有匹配的Intent才认为是许可的,则许可的Intent可以激活配置了该IntentFilter的组件。

如果某个Activity需要设置为可以被隐式意图激活,则需要在AndroidManifest.xml的对应的Activity节点下配置<intent-filter>节点,并在<intent-filter>节点下至少添加1个<action>节点和1个<category>节点,其中,<action>节点中的name属性值可以自由定义,将表现为激活当前Activity时需要指定的Intent的Action属性值,<category>节点的name属性值必须是"android.intent.category.DEFAULT"。

IntentFilter的过滤规则:IntentFilter中配置的Action和Category属性,比需要进行匹配验证的Intent中的同样的属性,只能多,不能少。


例子:

打电话:

Intent it = new Intent();
			it.setAction(Intent.ACTION_DIAL);
			it.setData(Uri.parse("tel:10086"));
			startActivity(it);

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 33
码字总数 15605
作品 0
深圳
【转】Android深入探究笔记之三 -- Intent (隐式意图和显示意图)

Intent Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) , Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递 Intent 来执行动作...

rotiwen ⋅ 2011/12/21 ⋅ 0

Intent(意图)

Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent来执行动作和产生事件...

长平狐 ⋅ 2012/10/09 ⋅ 0

Android中隐式意图(Intent)用法

Intent对象在Android应用开发中起到很大的作用,例如激活组件(Activity,Service 等组件)或者携带数据的功能,相信大家在开发中经常会用到这些功能,Android中的意图分为显式意图和隐式意图...

程序袁_绪龙 ⋅ 2015/01/14 ⋅ 0

android学习笔记12--------------隐性Intent

Intent分为两大类,显性的(Explicit )的和隐性的(Implicit)。在前面的例子中,我们在两个Activity之间跳转时初 步使用了Intent类,当时是用setClass来设置 Intent的发起方与接收方,它被...

晨曦之光 ⋅ 2012/03/15 ⋅ 0

Android的隐式意图

对于隐式意图,Android是怎样寻找到这个最合适的组件呢?记的前面我们在定义活动时,指定了一个intent-filter,Intent Filter(意图过滤器)其实就是用来匹配隐式Intent的,当一个意图对象被...

长平狐 ⋅ 2012/10/09 ⋅ 0

使用内置的Camera应用程序捕获图像

随着移动电话迅速成为移动计算机,它们在许多方面已经取代了各种各样的消费类电子产品。最早添加到移动电话上且和电话无关的硬件功能之一是摄像头。现在,似乎很难想象有人会购买一部不包含摄...

我叫leo- ⋅ 2016/04/19 ⋅ 0

Android中的Intent Filter与安全

更多原文请见:http://mobile.51cto.com/abased-349323.htm Intent是Android应用程序核心组件之间通信和传递信息的核心机制。与之相关的IntentFilter也具有相关的安全机制(测试)来进行约束...

samsunglinux ⋅ 2012/07/24 ⋅ 0

Android开发指南-框架主题-意图和意图过滤器

意图和意图过滤器Intents and Intent Filters 一个应用程序的三个核心组件-活动,服务和广播接收器是通过消息即意图(Intents)来激活的。Intent消息传送是相同或不同应用中组件运行时晚绑定...

JavaGG ⋅ 2010/03/24 ⋅ 0

Android开发指南-用户界面-菜单特性

菜单特性Menu Features 下面是适用于大多数菜单项的一些其他的特性。 菜单组Menu groups 当往菜单中添加新项时,你可以选择把它包含在一个组中。一个菜单组是一些可以共享某些特征的菜单项的...

JavaGG ⋅ 2010/03/24 ⋅ 0

java.lang.IllegalArgumentException: Service Inten

java.lang.IllegalArgumentException: Service Intent must be explicit: Intent 异常是说必须明确的指出 intent 即android 5.0 之后不能载用隐式意图操作service 而应该是用显式的意图操作s...

Angels_安杰 ⋅ 2016/02/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android JNI 读写Bitmap的方法

Java层创建Bitmap,通过JNI将Bitmap传到C/C++进行处理 Java部分 public static native boolean greenBitmap(Bitmap bitmap); C/C++部分 JNIEXPORT jboolean JNICALL Java_com_test_Test_gree......

国仔饼 ⋅ 9分钟前 ⋅ 0

一次性让你懂async/await,解决回调地狱

什么是async? 欢迎留言讨论 async 函数是 Generator 函数的语法糖。使用 关键字 async 来表示,在函数内部使用 await 来表示异步。相较于 Generator,async 函数的改进在于下面四点: 内置执...

阿K1225 ⋅ 9分钟前 ⋅ 0

angular常用命令

.下载更新操作 1.利用npm下载angular的命令行工具AngularCLI: npm install -g @angular/cli 2.下载jquery: npm install --save jquery 3.更新npm: npm i -g npm 4.更新angular: ng update ......

消散了的诗意 ⋅ 11分钟前 ⋅ 0

window.print 页面打印

定义和用法 print() 方法用于打印当前窗口的内容。 语法 window.print(); window.print() 实际上,是浏览器打印功能菜单的一种程序调用。与点击打印功能菜单一样,不能精确分页,不能设置纸型...

初学者的优化 ⋅ 12分钟前 ⋅ 0

魔兽世界 7.0版本上 PVE装备全攻略

  T套 因为大家应该都会打穿副本的所以具体是哪个boss我就不说了。   T1: 所有套装都在【熔火之心】出   T2: 头原来是在【奥妮克希亚的巢穴】改到黑翼之巢的奈法利安了,腿是在【熔火之...

wangchen1999 ⋅ 13分钟前 ⋅ 0

java.math.BigDecimal使用小结

原文地址 java.math.BigDecimal使用小结 divide方法 使用BigDecimal.divide方法时一定要考虑: 除数是否为0 商是否是无限小数 正确的使用方式 判断除数是否为0,是0做另外的处理逻辑 调用除法...

666B ⋅ 15分钟前 ⋅ 0

关于qstring转char乱码问题。

if (OpenClipboard(NULL)) { HGLOBAL hgClip; EmptyClipboard(); QByteArray byay = FValue.toLocal8Bit(); //转latin编码 char *bochsrc_line = byay.data(); hgClip = GlobalAlloc(GMEM_DD......

backtrackx ⋅ 16分钟前 ⋅ 0

了解SSH加密和连接过程

介绍 SSH或安全shell是安全协议,也是安全管理远程服务器的最常用方式。通过使用多种加密技术,SSH提供了一种机制,用于在双方之间建立加密安全连接,对彼此进行身份验证,以及来回传递命令和...

吴伟祥 ⋅ 22分钟前 ⋅ 0

微信小程序

小程序的基础配置:导航栏和tabbar 在app.json文件中配置导航栏和tabrbar 导航栏的设置 设置导航,背景黑色,文字白色,文字内容 { "pages":[ "pages/index/index", "pages/logs/l...

上官清偌 ⋅ 25分钟前 ⋅ 0

【转】百度坐标坐标系之间的转换(JS版代码)

/** * Created by Wandergis on 2015/7/8. * 提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换 *///定义一些常量var x_PI = 3.1415926535897932...

HAVENT ⋅ 27分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部