关于Intent的七大重要属性
在Android 中,Intent用来封装两个Activity之间的调用意图,实现两个Activity之间的跳转,并传递信息。
Intent的七大重要属性:ComponentName Action Category Data Type Extra Flag
1、ComponentName :Intent 通过该属性标识要跳转的组件,而明确指出ComponentName 的为显示Intent,而没有明确指定ComponentName 的为隐示Intent。
//显示意图
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
//隐示,此时Intent会根据指定规则启动符合条件的组件
intent.setAction(Intent.ACTION_CALL);
startActivity(intent);
2、Action Category
通常这两项会结合使用,在主配置文件的intent-filter标签下使用这两个标签。这种方式实现了Activity和Intent之间的分离,耦合度降低。
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="MainActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
//启动Intent
Intent intent = new Intent();
intent.setAction("MainActivity");
startActivity(intent);
Intent对象不仅可以启动本应用内的程序组件,也可以启动Android系统的其他应用的组件,包括系统内置的程序组件(需要设置权限)。
- ACTION_MAIN:(android.intent.action.MAIN)Android程序入口。
- 每个Android应用必须且只能包含一个此类型的Action声明。【如果设置多个,则哪个在前,执行哪个。】
- ACTION_VIEW: (android.intent.action.VIEW) 显示指定数据。
- ACTION_EDIT: (android.intent.action.EDIT) 编辑指定数据。
- ACTION_DIAL: (android.intent.action.DIAL) 显示拨号面板。
- ACTION_CALL: (android.intent.action.CALL) 直接呼叫Data中所带的号码。
- ACTION_ANSWER: (android.intent.action.ANSWER) 接听来电。
- ACTION_SEND: (android.intent.action.SEND) 向其他人发送数据(例如:彩信/email)。
- ACTION_SENDTO: (android.intent.action.SENDTO) 向其他人发送短信。
- ACTION_SEARCH: (android.intent.action.SEARCH) 执行搜索。
- ACTION_GET_CONTENT: (android.intent.action.GET_CONTENT) 让用户选择数据,并返回所选数据。
3、常用Category属性常量
CATEGORY_DEFAULT: (android.intent.category.DEFAULT) Android系统中默认的执行方式,按照普通Activity的执行方式执行。
CATEGORY_HOME: (android.intent.category.HOME) 设置该组件为Home Activity。
CATEGORY_PREFERENCE: (android.intent.category.PREFERENCE) 设置该组件为Preference。
CATEGORY_LAUNCHER: (android.intent.category.LAUNCHER) 设置该组件为在当前应用程序启动器中优先级最高的Activity,通常与入口ACTION_MAIN配合使用。
CATEGORY_BROWSABLE: (android.intent.category.BROWSABLE) 设置该组件可以使用浏览器启动。
在代码中可以通过Intent.addCategory()方法给Intent添加Category
4、系统内置的几个Data属性常量:
tel://:号码数据格式,后跟电话号码。
mailto://:邮件数据格式,后跟邮件收件人地址。
smsto://:短息数据格式,后跟短信接收号码。
content://:内容数据格式,后跟需要读取的内容。
file://:文件数据格式,后跟文件路径。
market://search?q=pname:pkgname:市场数据格式,在Google Market里搜索包名为pkgname的应用。
geo://latitude, longitude:经纬数据格式,在地图上显示经纬度所指定的位置。
例:
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
Uri uri = Uri.parse("tel://10086");
intent.setData(uri);
startActivity(intent);
5、Type
用于指定Data数据的MIME类型。
//播放视频
uri = Uri.parse("mnt/sdcard/video.3gp");
intent.setDataAndType(uri, "video/*");
6、系统内置的几个Extra常量:
- EXTRA_BCC:存放邮件密送人地址的字符串数组。
- EXTRA_CC:存放邮件抄送人地址的字符串数组。
- EXTRA_EMAIL:存放邮件地址的字符串数组。
- EXTRA_SUBJECT:存放邮件主题字符串。
- EXTRA_TEXT:存放邮件内容。
- EXTRA_KEY_EVENT:以KeyEvent对象方式存放触发Intent的按键。
- EXTRA_PHONE_NUMBER:存放调用ACTION_CALL时的电话号码。
//发送的短信
intent.setAction(Intent.ACTION_SENDTO);
uri = Uri.parse("sms:10086");
intent.setData(uri);
intent.putExtra("sms_body", "haha");
7、Flag
关于Intent的七大重要属性的更多相关文章
- 06 Activity的启动模式 Intent的七大属性的总结
1.Task以及back stack >Task(任务) 为了完成一个功能 多个Activity的集合, 当你的应用程序启动时 系统会自动创建Task用于管理Activity ...
- Intent的七大组件——Android开发之路5
------Intent------ Android中三个核心组件——Activity.Services.BroadCastProvider都是通过Intent传递参数. startActivity( ...
- Intent四个重要属性
Intent四个重要属性 Intent作为联系各Activity之间的纽带,其作用并不仅仅只限于简单的数据传递.通过其自带的属性,其实可以方便的完成很多较为复杂的操作.例如直接调用拨号功能.直接自 ...
- Android开发学习笔记:Intent的简介以及属性的详解【转】
一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...
- Intent的简介以及属性详解
一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...
- 【转载】Android开发学习笔记:Intent的简介以及属性的详解
http://liangruijun.blog.51cto.com/3061169/634411/ 一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent ...
- 【转】【Java/Android】Intent的简介以及属性的详解
一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...
- 关于Intent的七大属性
原谅我愚昧,Intent七大属性这个概念我也是昨天才接触到,看了一下,都是一些常用的东西,就是没有总结过,那么今天就来简单总结一下. Intent七大属性是指Intent的ComponentName. ...
- Intent的七大属性
1.Action Action属性代表系统要执行的动作 系统提供如下常用的Action属性 *ACTION_MAIN:应用程序入口点 *ACTION_VIEW:显示指定数据 *ACTION_EDIT: ...
随机推荐
- U盘快捷方式中毒处理办法
这是网上某位大神的,对于我这个U盘总中毒的人真的很好用,太开心啦啦 http://blog.csdn.net/jzwong/article/details/51002568
- SQLServer异步调用,批量复制
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 未能加载文件或程序集“Microsoft.SQLServer.DTSRuntimeWrap”或它的某一个依赖项。试图加载格式不正确的程序。
只要将应用程序池中的是否启用32位应用程序改为支持就可以了
- 关于reset.css的疑问:为什么一定要重置浏览器样式?
自开始做前端算起,我所做过的每一个项目中都会有一个reset.css,也就是重置样式表.我现在想想都不知道第一次是从哪儿弄来的一个重置样式表.快五年了,好像从来都没有质疑过关于重置样式表的内容. 这样 ...
- 移动web app 中的meta 标签
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scal ...
- 脚本工具: 查看当前系统被写入的FD
#!/bin/bash touch /tmp/sn2 /tmp/sn4 /tmp/sn6 /tmp/sn3 redir=/dev/null which lsof >&/dev/null ...
- MySQL 第九天(核心优化三)
一.昨天内容回顾 索引设计依据 与数据表有关系的sql语句都统计出来 where order by or等等条件的字段适当做索引 原则: 频率高的sql语句 执行时间长的sql语句 业务逻辑重要的sq ...
- 9、SQL Server 操作数据
插入数据 使用Insert Into 插入 if(exists(select * from sys.databases where name = 'webDB')) drop database web ...
- 移动端自动化环境搭建-wxpython的安装
安装wxpython A.安装依赖 wxPython 是 Python 非常有名的一个 GUI 库,因为 RIDE 是基于这个库开发的,所以这个必须安装. B.安装过程 下载地址:http://www ...
- ZYNQ 的PS GEM DMA存在缺陷
使用iperf对zynq进行单socket tcp传输速率测试: 无网络损伤时,单向网络带宽约为600Mbps,双向网络带宽相加约400Mbps: 50ms延时,1ms抖动,无丢包时,单向网络带宽约为 ...