`
- 浏览:
8256 次
- 性别:
- 来自:
北京
-
[size=medium]2011-09-12 09:35 显式intent和隐式intent区别
android当中显式intent和隐式intent的区别
定义:
Intent定义:Intent是一种在不同组件之间传递的请求消息,是应用程序发出的请求和意图。作为一个完整的消息传递机制,Intent不仅需要发送端,还需要接收端。
显式Intent定义:对于明确指出了目标组件名称的Intent,我们称之为显式Intent。
隐式Intent定义:对于没有明确指出目标组件名称的Intent,则称之为隐式Intent。
说明:Android系统使用IntentFilter 来寻找与隐式Intent相关的对象。
详细解释:
显式Intent直接用组件的名称定义目标组件,这种方式很直接。但是由于开发人员往往并不清楚别的应用程序的组件名称,因此,显式Intent更多用于在应用程序内部传递消息。比如在某应用程序内,一个Activity启动一个Service。
隐式Intent恰恰相反,它不会用组件名称定义需要激活的目标组件,它更广泛地用于在不同应用程序之间传递消息。
在显式Intent消息中,决定目标组件的唯一要素就是组件名称,因此,如果你的Intent中已经明确定义了目标组件的名称,那么你就完全不用再定义其他Intent内容。
而对于隐式Intent则不同,由于没有明确的目标组件名称,所以必须由Android系统帮助应用程序寻找与Intent请求意图最匹配的组件。
Android系统寻找与Intent请求意图最匹配的组件具体的选择方法 是:Android将Intent的请求内容和一个叫做IntentFilter的过滤器比较,IntentFilter中包含系统中所有可能的待选组件。
如果IntentFilter中某一组件匹配隐式Intent请求的内容,那么Android就选择该组件作为该隐式Intent的目标组件。
Android如何知道应用程序能够处理某种类型的Intent请求呢?这需要应用程序在Android-Manifest.xml中声明自己所含组件的过滤器(即可以匹配哪些Intent请求)。
一个没有声明Intent-Filter的组件只能响应指明自己名字的显式Intent请求,而无法响应隐式Intent请求。
而一个声明了IntentFilter的组件既可以响应显式Intent请求,也可以响应隐式Intent请求。在通过和 IntentFilter比较来解析隐式Intent请求时,Android将以下三个因素作为选择的参考标准。
Action
Data
Category
而Extra和Flag在解析收到Intent时是并不起作用的。[/size]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
显示Intent和隐式Intent启动Activity的示例
显式和隐式、过滤器intent的使用,欢迎有需要的朋友下载!
1、主要介绍显式Intent和隐式Intent 2、打开内置浏览器网页、打开系统内置电话 3、向下个活动传递数据、从下个活动返回数据
如果对Intent不是特别了解,可以参见博文《详解Android中Intent的使用...我们知道,Intent是分两种的:显式Intent和隐式Intent。如果一个Intent明确指定了要启动的组件的完整类名,那么这个Intent就是显式Intent,否则
一般来说。熟悉Android程序设计的人都知道Android有三个基础组件Activity,Service和BroadcastReceiver,他们都...Intent可以分为显式Intent和隐式Intent:显式Intent用于启动明确的目标组件(前面所说的三大组件),同一
Android有三个基础组件Activity,Service和BroadcastReceiver,他们都是依赖Intent来...Intent可以分为显式Intent和隐式Intent:显式Intent用于启动明确的目标组件(前面所说的三大组件),同一个Application内的多个Ac
为什么要写显式启动与隐式启动Activity。这源于自己的一次面试,被Baidu工程师问道,但是后来觉得自己回答的不好,废话少说,进入正题。 如题,Android的Acitivity启动大致有两种方式:显式启动与隐式启动。下面分别...
Android中Intent的详解(显式,隐式,系统,startActivityForResult);非常全面,但不深刻
5.2.1 显式 Intent 和隐式 Intent 5.2.2 Intent 过滤器(Filter) 5.3 用 Intent 激活电话拨号程序(Dialer) 5.3.1 拨号程序雏形 5.3.2 可输入电话号码的拨号程序 5.3.3 使用 Intent Filter 的拨号程序 5.4 用 ...
我们所使用的原生路由方案一般是通过显式intent和隐式intent两种方式实现的,而在显式intent的情况下,因为会存在直接的类依赖的问题,导致耦合非常严重;而在隐式intent情况下,则会出现规则集中式管理,导致协作变...
比如要从A—–>B ...2.隐式跳转 (1)在manifests文件中,这样注册B //这个name属性名是随便的可以不用叫jump (2)然后在A的activity中的匿名内部类(这里用匿名内部类)中的写如下代码: Intent intent = n
借用阿里云栖社区的一段话:我们所使用的原生路由方案一般是通过显式intent和隐式intent两种方式实现的(这里主要是指跳转Activity or Fragment)。在显式intent的情况下,因为会存在直接的类依赖的问题,导致耦合...
活动之间如何进行跳转4.1Toast4.2 界面之间跳转的两种方式:显式Intent与隐式Intent4.2.1显式Intent4.2.2隐式Intent5.活动之间如何进行通信5.1向下一个活动传递数据5.2将数据返回到上一个活动6.常见问题(大家有什么...
显示Intent和隐式Intent的区别
在示例中,该程序将隐式和显式显示Intent的实现。 参考: : 专业的Android 4应用程序开发页面166-183 有关此样本的理论,请阅读示例代码实验室程序在在关注印度尼西亚语CodeLab Android。 希望有用。
Intent更多象一个充满智慧的快递员,将各种信息通过大张旗鼓的(显式Intent)或者偷偷摸摸的(隐式Intent)在不同的骨干成员(核心组件)之间传递。变形金刚(android机器人)能够一统江湖,背后的快递员功不可没。...
使用隐式Intent,创建一个启动器应用来替换Android默认的启动器应用
隐式Intent的简单应用(包含发送文本信息与选择联系人)
Intent可以分成两种:显示Intent和隐式Intent。当知道要跳转过去的目标Activity的名字时可以采用显示Intent。而隐式Intent则是指定了一系列更为抽象的action和category等信息,然后交由系统去分析这个Intent,并帮...
主要介绍了Android Studio Intent隐式启动,发短信,拨号,打电话,访问网页等实例代码的相关资料,需要的朋友可以参考下