隐式意图
来源:互联网 发布:sql 没有权限 编辑:程序博客网 时间:2024/06/08 04:34
为什么要有隐式意图?
用于不同应用间的Activity之间 的跳转,由于不同应用之间看不同源代码,所以不能明确哪个组件。隐式意图使用意图过滤器进行组件间的匹配。
Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。
例:打电话
如调用电话拨号:Intent intent = new Intent(); intent.setAction("android.intent.action.CALL"); intent.setData("Uri.parse("tel:") + mobile");//mobile为电话号码(是数字) startActivity(intent); 如果采用隐式意图来激活组件,是怎么样找到组件的? 解释:如,电话拨号器在定义的时候,意图过滤器(Intent-filter)是这样定义的 Intent-filter> <action android:name="android.intent.action.CALL"/> <category android:name"android.intent.category.DEFAULT"/> <data android:scheme="tel"/> </Intent-filter> 1、先是有一个动作名称,<action android:name="android.intent.action.CALL"/>是由拨号器内部定义的,自己开发的应用也可以自己定义。 2、类别,在代码中并没有设类别,原因:当我们调用startActivity方法将intent意图传给操作系统时,startActivity方法的内部会为intent这个意图添加进一个类别,这个类别就是android.intent.category.DEFAULT。 3、数据,数据包含两个方面,数据所代表的Uri和数据的类型,此例中没有数据的类型,只有Uri,Uri又由scheme、主机名、路径三部分组成,对于Uri的匹配,只要跟给定的某一部分匹配就行了,此例中只要和scheme匹配就行。 此时,代码就可以和意图过滤器匹配了,因此,它就会调用这个过滤器所在的Activity,由此实现电话拨号功能。
阅读全文
0 0
- 显式意图&隐式意图
- 显式意图和隐式意图
- Android 隐式意图和显示意图
- 显示意图和隐式意图
- Android 隐式意图和显示意图
- intent显示意图和隐式意图
- Intent显示意图和隐式意图
- 隐式意图和显示意图
- 显示意图和隐式意图
- Intent--显示意图和隐式意图
- Intent--显示意图和隐式意图
- 详解显示意图和隐式意图
- Android隐式意图
- 显,隐式意图
- 隐式意图
- 隐式意图
- 隐式意图套路
- Android隐式意图
- 正则表达式格式
- Spring Boot 部署与服务配置
- 如何将Red5添加到系统服务中
- 深度学习框架提供的“Model Zoo“
- Unity3d一 工具、源码、破解
- 隐式意图
- HDOJ1789 Doing Homework again 贪心
- 学习日记-安卓Package Manager和Package Installer
- jQuery在IE8上使用时提示“对象不支持此属性或方法”
- 5.x中批量设置选定文件夹对应的AssetBundle名称
- cxf web service简单配置
- Dragon Balls(并查集)
- 习近平带领我们走过的这不平凡五年——从严治党篇
- ActivityStack类startActivityLocked方法解析