Intent 显示与隐式
2016-07-15 21:51
381 查看
Intent
显式意图:在同项目包下使用显式会比较好,效率高
隐式意图:在不同项目下跳转页面,使用隐式效率比较好。
Intent对象大致包括7大属性:
第一类:启动,有ComponentName(显式),Action(隐式),Category(隐式)。
第二类:传值,有Data(隐式),Type(隐式),Extra(隐式、显式)。
第三类:启动模式,有Flag。
1.ComponentName
Component本身有组件的意思,我们通过设置Component可以启动其他的Activity或者其他应用中的Activity。
2.Action和Category
因为在实际开发中,Action大多时候都是和Category一起使用的,所以这里我们将这两个放在一起来讲解。Intent中的Action我们在使用广播的时候用的比较多,在Activity中,我们可以通过设置Action来隐式的启动一个Activity。
3.Data
通过设置data,我们可以执行打电话,发短信,开发网页等等操作。
4.Type
type的存在,主要是为了对data的类型做进一步的说明,但是一般情况下,只有data属性为null的时候,type属性才有效,如果data属性不为null,系统会自动根据data中的协议来分析data的数据类型,而不会去管type。
5.Extra
Extra就比较好理解了,我们经常使用它来在Activity之间传递数据,Extra可以传递基本类型,String类型以及实现了Serializable或者Parcelable接口的类。
6.Flag
通过设置Flag,我们可以设定一个Activity的启动模式,这个和launchMode基本上是一样的。
Intent主要有以下四个重要属性,在
Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。
Data:Data通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。
Category:Category属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置。默认为:CATEGORY_DEFAULT。
Extras:Extras属性主要用于传递目标组件所需要的额外的数据。通过putExtras()方法设置。
> 四个属性各自的常用值如下所示:
**Action:**
Category:
Extras:
Data:
Intent获取结果,传递
显式意图:在同项目包下使用显式会比较好,效率高
隐式意图:在不同项目下跳转页面,使用隐式效率比较好。
Intent对象大致包括7大属性:
第一类:启动,有ComponentName(显式),Action(隐式),Category(隐式)。
第二类:传值,有Data(隐式),Type(隐式),Extra(隐式、显式)。
第三类:启动模式,有Flag。
1.ComponentName
Component本身有组件的意思,我们通过设置Component可以启动其他的Activity或者其他应用中的Activity。
2.Action和Category
因为在实际开发中,Action大多时候都是和Category一起使用的,所以这里我们将这两个放在一起来讲解。Intent中的Action我们在使用广播的时候用的比较多,在Activity中,我们可以通过设置Action来隐式的启动一个Activity。
3.Data
通过设置data,我们可以执行打电话,发短信,开发网页等等操作。
4.Type
type的存在,主要是为了对data的类型做进一步的说明,但是一般情况下,只有data属性为null的时候,type属性才有效,如果data属性不为null,系统会自动根据data中的协议来分析data的数据类型,而不会去管type。
5.Extra
Extra就比较好理解了,我们经常使用它来在Activity之间传递数据,Extra可以传递基本类型,String类型以及实现了Serializable或者Parcelable接口的类。
6.Flag
通过设置Flag,我们可以设定一个Activity的启动模式,这个和launchMode基本上是一样的。
隐式要在<activity> 里面添加<intent-filter> <intent-filter> 里面重要的属性 <action> <category> <data>里面重要的属性:mimeType,scheme
Intent主要有以下四个重要属性,在
<intent-filter>里面定义,它们分别为:
Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。
Data:Data通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。
Category:Category属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置。默认为:CATEGORY_DEFAULT。
Extras:Extras属性主要用于传递目标组件所需要的额外的数据。通过putExtras()方法设置。
> 四个属性各自的常用值如下所示:
**Action:**
ACTION_MAIN:Android Application的入口,每个Android应用必须且只能包含一个此类型的Action声明。 ACTION_VIEW:系统根据不同的Data类型,通过已注册的对应Application显示数据。 ACTION_EDIT:系统根据不同的Data类型,通过已注册的对应Application编辑示数据。 ACTION_DIAL:打开系统默认的拨号程序,如果Data中设置了电话号码,则自动在拨号程序中输入此号码。 ACTION_CALL:直接呼叫Data中所带的号码。 ACTION_ANSWER:接听来电。 ACTION_SEND:由用户指定发送方式进行数据发送操作。 ACTION_SENDTO:系统根据不同的Data类型,通过已注册的对应Application进行数据发送操作。 ACTION_BOOT_COMPLETED:Android系统在启动完毕后发出带有此Action的广播(Broadcast)。 ACTION_TIME_CHANGED:Android系统的时间发生改变后发出带有此Action的广播(Broadcast)。 ACTION_PACKAGE_ADDED:Android系统安装了新的Application之后发出带有此Action的广播(Broadcast)。 ACTION_PACKAGE_CHANGED:Android系统中已存在的Application发生改变之后(如应用更新操作)发出带有此Action的广播(Broadcast)。 ACTION_PACKAGE_REMOVED:卸载了Android系统已存在的Application之后发出带有此Action的广播(Broadcast)。
Category:
CATEGORY_DEFAULT:Android系统中默认的执行方式,按照普通Activity的执行方式执行。 CATEGORY_HOME:设置该组件为Home Activity。 CATEGORY_PREFERENCE:设置该组件为Preference。 CATEGORY_LAUNCHER:设置该组件为在当前应用程序启动器中优先级最高的Activity,通常为入口ACTION_MAIN配合使用。 CATEGORY_BROWSABLE:设置该组件可以使用浏览器启动。 CATEGORY_GADGET:设置该组件可以内嵌到另外的Activity中。
Extras:
EXTRA_BCC:存放邮件密送人地址的字符串数组。 EXTRA_CC:存放邮件抄送人地址的字符串数组。 EXTRA_EMAIL:存放邮件地址的字符串数组。 EXTRA_SUBJECT:存放邮件主题字符串。 EXTRA_TEXT:存放邮件内容。 EXTRA_KEY_EVENT:以KeyEvent对象方式存放触发Intent的按键。 EXTRA_PHONE_NUMBER:存放调用ACTION_CALL时的电话号码。
Data:
tel://:号码数据格式,后跟电话号码。 mailto://:邮件数据格式,后跟邮件收件人地址。 smsto://:短息数据格式,后跟短信接收号码。 content://:内容数据格式,后跟需要读取的内容。 file://:文件数据格式,后跟文件路径。 market://search?q=pname:pkgname:市场数据格式,在Google Market里搜索包名为pkgname的应用。 geo://latitude,longitude:经纬数据格式,在地图上显示经纬度指定的位置。 在intent-filter中指定data属性的实际目的是:要求接收的Intent中的data必须符合intent-filter中指定的data属性,这样达到反向限定Intent的作用。
Intent获取结果,传递
startActivityForResult(Intent intent, int requestCode)//参数2 设置请求码 setResult(int resultCode, Intent data)//参数1 对应传递过来请求码 重写onActivityResult(int requestCode, int resultCode, Intent data) //返回Result结果,参数2可以用来区分代码类别
相关文章推荐
- Android 使用Intent传递数据的实现思路与代码
- Android组件间通信--深入理解Intent与IntentFilter
- Android中Intent机制详解及示例总结(总结篇)
- Android使用Intent发送短信的实现方法
- 详解Activity之singletast启动模式及如何使用intent传值
- Android利用Intent实现读取图片操作
- Intent传递对象之Serializable和Parcelable的区别
- Android中的Intent对象完全解析
- android教程之intent的action属性使用示例(intent发短信)
- 从源码剖析Android中的Intent组件
- Android编程开发之打开文件的Intent及使用方法
- Android中Intent习惯用法
- Android使用Intent启动其他非系统应用程序的方法
- Android Intent启动别的应用实现方法
- 详解Android中Intent的使用方法
- Android利用Intent实现记事本功能(NotePad)
- Android开发之利用Intent实现数据传递的方法
- Android编程使用Intent传递对象的方法分析
- Android中Intent传递对象的两种方法Serializable,Parcelable
- Android中的Intent Filter匹配规则简介