Intent :

  Intent 是一个动作的完整描述,一种运行时的绑定机制,Intent中包含对Intent有兴趣的组件信息,如对动作的产生组件、接受组件和传递的数据信息。Android根据此Intent描述,在不同的组件之间传递消息,执行相关的动作,完成组件的调用。

  Intent的基本构成结构:Intent对象抽象地描述了要执行的动作,主要内容包括了:组件名称(componentName)、动作(Action)、数据(data)、类别(category)、附加信息(Extra)和标志位(Flag)。

  • 组件名称(ComponentName对象),ComponentName包含两个String成员,分别代表目标组件类名和目标组件所在应用程序包名,包名必须和AndroidManifest.xml文件标记中的对应信息一致。ComponentName通过setComponentName()、setClass()或者setClassName()设置,通过getComponent()获取。对于Intent,组件名称不是必需的。如果一个Intent对象添加了组件名,则称为“显示Intent”,若没有添加组件名,则称为“隐式Intent”。通常,Android会根据Intent中包含的其他信息(如action、data、category)进行查找,最终找到一个与之匹配的目标组件。但是如果componentName这个属性有指定,将直接使用这个指定的组件,而不执行上述的查找过程。
  • 动作(action)action是要执行的动作。它描述了Intent会触发的动作。Android系统中已经预定义了一些acton常量,可以参考SDK文档。除了系统定义的action,可以自定义action,在自定义action时,一般要加上包名作为前缀(为了防止重复定义)。一个对象的动作通过setAction()方法设置,通过getAction()方法读取。
  • 数据(data)即执行动作需要操作的数据。data描述了Intent执行动作所能操作数据的MIME类型和URL,不同的Action用不同的操作数据。例如Activity字段是ACTION_EDIT,data字段将显示包含于编辑的文档URI;如果Activity是ACTION_CALL,data是一个tel://URL和将要拨打的电话号码;在许多情况下,数据类型能够从URI中推测出来,当然,也能显式的设置,setData()方法制定数据的URI,setType()指定MIME类型,setDataAndType()指定数据的URI和MIME类型。通过getData()读取URI,getType()读取类型。匹配一个Intent到一个能够处理data的组件,知道data的类型(它的MIME类型)和它的URI很重要。
  • 类别(category)被执行动作的附加信息。例如:LAUNCHER_CATEGOTY表示Intent的接受者应该是launcher中作为顶级应用出现的;而ALTERNATIVE_CATEGORY表示当前Intent是一系列的可选动作中的一个,这些动作可以再同一块数据上执行。通过addCategory()方法添加一个种类到Intent对象中;通过removeCategory()方法删除一个之前添加过的种类;通过getCategory()方法获取Intent对象中的所有种类。
  • 附加信息(extra),extra是一组键值对,包含了需要传递给目标组件并有其处理的一些附加信息。Intnet有一系列putXXX()方法用于插入各种附加数据,有一系列getXXX()方法取出各种附加数据。

利用Intent实现多个Activity之间切换

   在MainActivity.java中

Intent intent = new Intent(MainActivity.this,OneActivity.class);
intent.putExtra("msg", "Hello No.1");
startActivity(intent); //或者
Intent intent = new Intent();
intent.setClass(MainActivity.this,OneActivity.class);
intent.putExtra("msg", "Hello No.1");

startActivity(intent);

  在OneActivity.java中

 1  public class OneActivity extends Activity {
2 @Override
3 protected void onCreate(Bundle savedInstanceState) {
4 // TODO Auto-generated method stub
5 super.onCreate(savedInstanceState);
6 setContentView(R.layout.layout_one);
7     Intent intent = getIntent();
8     String msg = intent.getStringExtra("msg");
9     Toast.makeText(OneActivity.this, msg,Toast.LENGTH_SHORT).show()
10 }
通过定义一个Intent 将两个界面绑在一起。启动一个新界面的时候,只要调用startActivity(Intent)就可以了,并且通过putStringExtra()方法传送信息。

  

Android学习--Intent的更多相关文章

  1. Android学习之 Intent详解

    一. Intent 作用 Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯.比如说调用startActivity()来 ...

  2. android学习日记05--Activity间的跳转Intent实现

    Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...

  3. Android学习笔记-Intent(一)

    Intent对象在Android官方API这样描述:It is a passive data structure holding an abstract description of an opera ...

  4. android之intent显式,显式学习

    intent,意图 当从一个Activity到另一个Activity时调用,这里重点学习显式,隐式的使用 使用语句上的区别: 隐式意图:                 显式意图: setAction ...

  5. android学习四---Activity和Intent

    1.android项目资源深入了解 在深入学习android之前,先好好玩玩手机上的应用,大部分程序都有一个图标,点开图标,程序启动,一定时间后,程序会跳转到第一个界面,比如手机QQ,点开图标,会跳出 ...

  6. 【转】Pro Android学习笔记(十二):了解Intent(下)

    解析Intent,寻找匹配Activity 如果给出component名字(包名.类名)是explicit intent,否则是implicit intent.对于explicit intent,关键 ...

  7. 【转】Pro Android学习笔记(十):了解Intent(上)

    目录(?)[-] Intent基本含义 系统的Intent Android引入了Intent的概念来唤起components,component包括:1.Activity(UI元件) 2.Servic ...

  8. Android学习总结(十)———— Intent的使用

    一.Intent的基本概念 我们已经学习完了Android的四大组件了,在四大组件中我们用得最多的是Intent-Filter.Intent含义就是你想利用它调用哪个组件实现相关的功能,比如调用相机组 ...

  9. (转载)Android学习之Intent使用

    ndroid学习之Intent使用   1.使用显示Intent Intent intent = new Intent(FirstActivity.this,SecondActivity.class) ...

  10. Android 学习Activity(1)activity和intent

    工具是:JDK环境配置+SDK+ADT工具 一.Activity  主要作用: 1.用户与应用程序的接口 2.控件的容器 二.创建Activity要点:(在src中的目录下包里) 1.一个Activi ...

随机推荐

  1. Pisces.IM.Mood 前言

    关于 Pisces.IM.Mood Mood Pisces.IM.Mood 一款基于TCP协议的即时通讯开源系统 多个客户端目前支持以下功能: 支持文字,图片,文件,emoji表情的发送 文件限制为5 ...

  2. 前端三件套系例之JS——JS的BOM操作、JS的DOM操作

    文章目录 1 JS的BOM操作 1.介绍 2.window对象 2-1 代码 3.window的子对象 3-1 navigator对象(了解即可) 3-2 screen对象(了解即可) 3-3 his ...

  3. Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类、工具类与实现类

    Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类.工具类与实现类 ELM_V1_食品的实体类 package elm_V1; /** * [食品实体类] * * @a ...

  4. interface 接口相关【GO 基础】

    〇.接口简介 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节.也就是说,接口可以将一种或多种特征归纳到一起,其他不同的对象通过实现此接口,来表示可以 ...

  5. 【XXE实战】——浅看两道CTF题

    [XXE实战]--浅看两道CTF题 上一条帖子[XXE漏洞]原理及实践演示对XXE的一些原理进行了浅析,于是写了两道CTF题巩固一下,顺便也记录一下第一次写出来CTF.两道题都是在BUU上找的:[NC ...

  6. 组合的输出 题解(lgP1157)

    一看就是 dfs 然而窝并不会做 调了一个多小时才调出来.漏洞连篇.(第一次写的基本没有对的地方QAQ 题解见注释. #include<bits/stdc++.h> using names ...

  7. 使用 redis 实现分布式接口限流注解 RedisLimit

    前言 很多时候,由于种种不可描述的原因,我们需要针对单个接口实现接口限流,防止访问次数过于频繁.这里就用 redis+aop 实现一个限流接口注解 @RedisLimit 代码 点击查看RedisLi ...

  8. 聊聊 GPU 产品选型那些事

    随着人工智能的飞速崛起,随之而来的是算力需求的指数级增加,CPU 已经不足以满足深度学习.大模型计算等场景的海量数据处理需求.GPU 作为一种强大的计算工具,无论是高性能计算.图形渲染还是机器学习领域 ...

  9. 从DPlayer说起,有哪些开源的H5播放器

    引言 ​ H5指的是HTML5,也就是介绍网页播放器(只是列出而已).首先我不是什么大佬,并没有完全体验过以下我会介绍的全部播放器:其次,因为我水平比较低,主要介绍拥有中文文档的播放器,不了解开发的朋 ...

  10. 贪心算法:7-6 Swan学院社团招新

    Swan学院社团招新,招新宣讲会分散在不同时间段,大一新生小花花想知道自己最多能完整的参加多少个招新宣讲会(参加一个招新宣讲会的时候不能中断或离开). [问题说明]这个问题是对几个相互竞争的招新宣讲会 ...