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组件的更多相关文章

  1. Android中Intent组件详解

    Intent是不同组件之间相互通讯的纽带,封装了不同组件之间通讯的条件.Intent本身是定义为一个类别(Class),一个Intent对象表达一个目的(Goal)或期望(Expectation),叙 ...

  2. Android基础_ContentProvider组件

    一.了解Contentprovider组件 1.1Contentprovider是数据的提供者,Android四大组件之一,程序之间数据共享的接口 1.2activity系统中对数据的访问限制十分严格 ...

  3. Android 基础UI组件(二)

    1.Spinner 提供一个快速的方法来从一组值中选择一个值.在默认状态Spinner显示当前选择的值.触摸Spinner与所有其他可用值显示一个下拉菜单,可以选择一个新的值. /** * 写死内容: ...

  4. Android 基础UI组件(一)

    1.Toast //显示文字 Toast.makeText(this,"Toast显示文本",Toast.LENGTH_SHORT).show(); //显示图片 Toast to ...

  5. android应用安全——组件通信安全(Intent)

    这里主要涉及到了Activity.Content Provider.Service.Broadcast Receiver等.这些如果在Androidmanifest.xml配置不当,会被其他应用调用, ...

  6. Android编程: fragment组件、菜单和Intent组件

    学习内容:fragment组件.菜单和Intent组件 ====fragment组件====1.fragment是一种自我容纳,模块化的,嵌入在一个Activity里面的视图组件    可以在运行时动 ...

  7. Android基础_1 四大基本组件介绍与生命周期

    Android四大基本组件分别是Activity,Service(服务),Content Provider(内容提供者),BroadcastReceiver(广播接收器). 一.四大基本组件 Acti ...

  8. Android Fragment中使用Intent组件拍照

    要在activity里面去接受,然后传递给fragment对象,fragment有很多回调调用不到 你的设备有摄像头吗? 为了确保市场上的大多数设备都能运行你的程序,必须在项目中做一些检测,保证使用的 ...

  9. 安卓四大组件之Sevice组件的简单使用 --Android基础

    1.本例实现了简单的Service(服务)的创建.启动和停止,点击“启动SERVICE”页面会显示“服务被创建”,接着是“服务被启动”.点击“停止SERVICE”页面提示“服务被停止”.太过基础,直接 ...

随机推荐

  1. github上的golang双向rpc,基于原生“net/rpc”库实现,可以注册回调

    github上的golang双向rpc,基于原生“net/rpc”库实现,可以注册回调.仅支持一个server和一个client交互. 地址:https://github.com/rocket049/ ...

  2. Multimodal Machine Learning:A Survey and Taxonomy 综述阅读笔记

    该笔记基于:Multimodal Machine Learning:A Survey and Taxonomy 该论文是一篇对多模态机器学习领域的总结和分类,且发表于2017年,算是相当新的综述了.老 ...

  3. java入门---对象和类&概念详解&实例

        Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载     这篇文章,我们主要来看下: 对象:对象是类的一个实例(对象不是找个女朋友),有状态 ...

  4. 如何把C盘里的文件默认位置更改到D盘指定目录?

    如何把C盘里的文件默认位置更改到D盘指定目录? 1.打开运行,输入 %HOMEPATH% 2.以”桌面”文件转移到D盘目录为例(其他文档类比进行操作) 3.鼠标右键”桌面”----选择属性-----定 ...

  5. Java设计模式(1)——创建型模式之简单工厂模式(Simple Factory)

    设计模式系列参考: http://www.cnblogs.com/Coda/p/4279688.html 一.概述 工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高 ...

  6. NB-IOT连接移动onenet平台流程

    1. 先创建账号,然后创建产品 2. 创建设备,用AT+CGSN和AT+CIMI查询NB-IOT的IMEI和IMSI填写上去. 3. 创建好的设备.

  7. angualarjs $location服务

    $location服务 angular使用内置的$location服务来监听.操作url,包括以下功能: - 获取.监听.改变地址栏的URL: - 与URL实现双向数据绑定(地址栏变动.前进后退或者点 ...

  8. docker社区的geodata/gdal镜像dockerfile分析

    对应从事遥感与地理信息的同仁来说,gdal应该是所有工具中使用频度最高的库了,那么在docker中使用gdal时,面临的第一步就是构建gdal基础镜像,社区中引用最多的就是geodata提供的gdal ...

  9. APP产品设计流程图

    产品设计流程(toB) 工作有半个月了,遇到了很多问题,也在不断学习和充实自己,让自己的工作变得更加清晰和流程化,所以整理了这么个设计流程. 收集整理一切有用或则以后可能会用的文档. 从文档里面提炼用 ...

  10. OSG-OSG中的observer_ptr指针

    看array大神的CookBook后一些感想,在代码上添加了一些注释,也对源码做了一些研读,记录下学习的过程. CookBook中第一个例子就是observer_ptr指针,这个指针和它的名字一样,就 ...