Android基础------Intent组件
1.什么是intent
同Activity一样,也是Android应用组件
在Android中承担着一种指令输出的作用
Intent负责对应用中一次操作的动作及动作相关的数据进行描述。
Android则根据此描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用
实现Android应用组件之间的交互与通信
包括Activity、Service、BroadcastReceiver 组件
每个组件通过Intent关联,实现交互通信
实现组件之间的解耦

2.Intent包含的属性
| action | 要执行的动作 |
| data | 执行动作要操作的数据 |
| type | 显示指定Intent的数据类型 |
| category | 类别,被执行动作的附加信息 |
| extras | 包含所有附加信息的集合 |
| component | 指定Intent的目标组件的类名称 |
2.1 操作 (action)
可以通过setAction()方法进行设置,在Android系统之中已经为用户准备好了一些表示Action操作的常量
|
Action名称 |
AndroidManifest.xml配置名称 |
描述 |
|
ACTION_MAIN |
android.intent.action.MAIN |
作为一个程序的入口不需要接收数据 |
|
ACTION_VIEW |
android.intent.action.VIEW |
用于数据的显示 |
|
ACTION_DIAL |
android.intent.action.DIAL |
调用电话拨号程序 |
|
ACTION_EDIT |
android.intent.action.EDIT |
用于编辑给定的数据 |
|
ACTION_PICK |
android.intent.action.PICK |
从特定的一组数据之中进行数据的选择操作 |
|
ACTION_RUN |
android.intent.action.RUN |
运行数据 |
|
ACTION_SEND |
android.intent.action.SEND |
调用发送短信程序 |
|
ACTION_GET_CONTENT |
android.intent.action.GET_CONTENT |
根据指定的Type来选择打开操作内容的Intent |
|
ACTION_CHOOSER |
android.intent.action.CHOOSER |
创建文件操作选择器 |
2.2 数据(data)
描述Intent所操作数据的URI及类型,可以通过setData()进行设置,不同操作对应着不同的Data
|
操作类型 |
Data(Uri)格式 |
范例 |
|
浏览网页 |
http://网页地址 |
http://www.thinkjava.cn |
|
拨打电话 |
tel:电话号码 |
tel:07566811236 |
|
发送短信 |
smsto:短信接收人号码 |
smsto: 13527245055 |
|
查找SD卡文件 |
file:///sdcard/文件或目录 |
file:///sdcard/mypic.jpg |
|
显示地图 |
geo:坐标,坐标 |
geo:31.899533,-27.036173 |
2.3 数据类型(Type)
指定要传送数据的MIME类型,可以直接通过setType()方法进行设置
|
作用 |
MIME类型 |
|
发送短信 |
vnd.android-dir/mms-sms |
|
设置图片 |
image/png |
|
普通文本 |
text/plain |
|
设置音乐 |
audio/mp3 |
2.4 操作类别(Category)
对执行操作的类别进行描述,可以通过addCategory()方法设置多个类别
|
Category名称 |
AndroidManifest.xml配置名称 |
描述 |
|
CATEGORY_LAUNCHER |
android.intent.category.LAUNCHER |
表示此程序显示在应用程序列表中 |
|
CATEGORY_HOME |
android.intent.category.HOME |
显示主桌面,即开机时的第一个界面 |
|
CATEGORY_PREFERENCE |
android.intent.category.PREFERENCE |
运行后将出现一个选择面板 |
|
CATEGORY_BROWSABLE |
android.intent.category.BROWSABLE |
显示一张图片、email信息 |
|
CATEGORY_DEFAULT |
android.intent.category.DEFAULT |
设置一个操作的默认执行 |
|
CATEGORY_OPENABLE |
android.intent.category.OPENABLE |
当Action设置为“GET_CONTENT”时用于打开指定的Uri |
2.5 附加信息(Extras)
传递的是一组键值对,可以使用pubExtra()方法进行设置,主要的功能是传递数据(Uri)所需要的一些额外的操作信息
|
操作数据 |
附加信息 |
作用 |
|
短信操作 |
sms_body |
表示要发送短信的内容 |
|
彩信操作 |
Intent.EXTRA_STREAM |
设置发送彩信的内容 |
|
指定接收人 |
Intent.EXTRA_BCC |
指定接收email或信息的接收人 |
|
Email收件人 |
Intent.EXTRA_EMAIL |
用于指定Email的接收者,接收一个数组 |
|
Email标题 |
Intent.EXTRA_SUBJECT |
用于指定Email邮件的标题 |
|
Email内容 |
Intent.EXTRA_TEXT |
用于设置邮件内容 |
2.6 组件(component)
Component本身有组件的意思,我们通过设置Component可以启动其他的Activity或者其他应用中的Activity。
简单点说,就是两个Activity之间的跳转
启动到同一个App中另外一个Activity:
intent = new Intent();
intent.setComponent(new ComponentName(this, SecondActivity.class));
startActivity(intent);
这中启动方式等同于以下两种启动方式:
intent = new Intent(this,SecondActivity.class);
startActivity(intent);
intent = new Intent();
intent.setClass(this, SecondActivity.class);
startActivity(intent);
Android基础------Intent组件的更多相关文章
- Android中Intent组件详解
Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙 ...
- Android基础_ContentProvider组件
一.了解Contentprovider组件 1.1Contentprovider是数据的提供者,Android四大组件之一,程序之间数据共享的接口 1.2activity系统中对数据的访问限制十分严格 ...
- Android 基础UI组件(二)
1.Spinner 提供一个快速的方法来从一组值中选择一个值.在默认状态Spinner显示当前选择的值.触摸Spinner与所有其他可用值显示一个下拉菜单,可以选择一个新的值. /** * 写死内容: ...
- Android 基础UI组件(一)
1.Toast //显示文字 Toast.makeText(this,"Toast显示文本",Toast.LENGTH_SHORT).show(); //显示图片 Toast to ...
- android应用安全——组件通信安全(Intent)
这里主要涉及到了Activity.Content Provider.Service.Broadcast Receiver等.这些如果在Androidmanifest.xml配置不当,会被其他应用调用, ...
- Android编程: fragment组件、菜单和Intent组件
学习内容:fragment组件.菜单和Intent组件 ====fragment组件====1.fragment是一种自我容纳,模块化的,嵌入在一个Activity里面的视图组件 可以在运行时动 ...
- Android基础_1 四大基本组件介绍与生命周期
Android四大基本组件分别是Activity,Service(服务),Content Provider(内容提供者),BroadcastReceiver(广播接收器). 一.四大基本组件 Acti ...
- Android Fragment中使用Intent组件拍照
要在activity里面去接受,然后传递给fragment对象,fragment有很多回调调用不到 你的设备有摄像头吗? 为了确保市场上的大多数设备都能运行你的程序,必须在项目中做一些检测,保证使用的 ...
- 安卓四大组件之Sevice组件的简单使用 --Android基础
1.本例实现了简单的Service(服务)的创建.启动和停止,点击“启动SERVICE”页面会显示“服务被创建”,接着是“服务被启动”.点击“停止SERVICE”页面提示“服务被停止”.太过基础,直接 ...
随机推荐
- 贪心算法之Dijkstra
贪心算法的主要思想就是通过不断求解局部最优解,最后求出最优解或者最优解的近似值,不能保证一定为最优解. Dijistra算法,选取没有选择过的点到已经选择过得点组成的集合中最短的距离的点.然后更新已选 ...
- BZOJ1452_Count_KEY
题目传送门 二维树状数组,对于每个颜色开一个树状数组,用容斥求解. code: #include <cstdio> using namespace std; int read() { ') ...
- [AGC011F] Train Service Planning [线段树优化dp+思维]
思路 模意义 这题真tm有意思 我上下楼梯了半天做出来的qwq 首先,考虑到每K分钟有一辆车,那么可以把所有的操作都放到模$K$意义下进行 这时,我们只需要考虑两边的两辆车就好了. 定义一些称呼: 上 ...
- LWM2M简介-学习记录
1. Lightweight M2M 基础,谁搞出来的 OMA是一家国际组织,因为物联网的兴起, OMA在传统的OMA-DM协议基础之上,提出了LWM2M协议.这个协议基于COAP协议,COAP协议基 ...
- yarn 原理
产生背景 直接源于MRv1在几个方面的缺陷 扩展性受限(NameNode,JobTracker设计为单一节点,内存容量有限) 单点故障 难以支持MR之外的计算 slot数目无法动态修改,Map slo ...
- vuecli结合eslint静态检查
vuecli结合eslint静态检查 搭建vue项目开发可能选择vue-cli项目脚手架快速创建vue项目.(https://github.com/vuejs/vue-cli) 安装vue-cli n ...
- 汽车VIN码识别/汽车车架号OCR识别,移动端VIN码识别,OCR扫描工具
本文推荐了一项汽车VIN码自动识别技术,用户通过手机“扫一扫”的简单操作,就可以快速识别VIN码,查询到车辆的详细信息,为汽修汽配.二手车交易.车辆监管.查勘理赔提高工作效率. VIN是英文Vehic ...
- 第五模块·WEB开发基础-第3章jQuery&Bootstrap
01-jQuery介绍 02-如何使用jQuery 03-jQuery的入口函数 04-jQuery对象和JS对象的相互转换 05-jQuery如何操作DOM 06-底层选择器 07-基本过滤器 08 ...
- C#-返回相对时间函数
在公司一直做前端,经理叫我写一个后端函数,要求是: 参数:DateTime--传入任意时间类型返回:string --返回传入参数时间与当前时间的相对时间字符串,如:3天前,1小时前,5分钟前. 注意 ...
- Vue 兄弟组件通信(不使用Vuex)
Vue 兄弟组件通信(不使用Vuex) 项目中,我们经常会遇到兄弟组件通信的情况.在大型项目中我们可以通过引入vuex轻松管理各组件之间通信问题,但在一些小型的项目中,我们就没有必要去引入vuex.下 ...