Intent是android四大组件之间交互的一种重要方式。Intent可以指明当前要执行的动作,也可以指明要传递的数据。Intent可以用来启动活动,启动服务,发送广播。
Intent分为两种:1.显式Intent 2.隐式Intent
显示Intent使用方法:
例(启动活动)
Intent有多个重载的构造方法。其中一个是Intent(Context packageContext, Class<?> cls) 第一个参数是上下文Context对象, 因为Activity, Service, Broadcast均为Context的子类,所以可以直接传入。 后一个参数是要启动的活动。通过这个构造函数就可以构建出“意图”。然后将这个Intent对象传给startActivity()方法就可以启动另外的活动了。
隐式Intent使用方法:
例(启动活动)
隐式Intent不直接指明要启动的活动。而是通过描述要启动的组件的特征,借助系统分析这个Intent, 对系统内的所有组件的特征进行筛选过滤出合适的组件。所有的组件,如果想被隐式的Intent启动,都要通过在标签下配置的内容,可以指定当前活动能够响应的 action 和 category。只有和中的内容同时能够匹 配上 Intent 中指定的 action 和 category 时,这个活动才能响应该 Intent。

Intent向下一个活动传递数据
启动活动时传递数据使用的是一系列putExtra(键,值)方法的重载。他可以把数据暂存在Intent中,在启动了下一个活动之后,再把数据从intent中取出来。在下一个活动中使用getIntent()获取到启动它的那个intent对象,然后调用getStringIntent(键)方法,获取到传来的数据getXXIntent, XX为传来数据的类型。

Intent返回数据给上一个活动
使用startActivityForResult(Intent, 请求码)启动下一个活动,来向启动方返回数据,请求码为了让上一个活动能够识别出这是哪一个活动返回给他的。这个方法期望在活动销毁的时候能够返回一个结果给上一个活动。
setResult(RESULT_OK, intent)专门用来向上一个活动返回数据的方法,第一个参数是返回码。由于我们是使用 startActivityForResult()方法来启动 SecondActivity 的,在 SecondActivity 被销毁之后会回调上一个活动的 onActivityResult()方法,因此我们需要在 FirstActivity 中重 写这个方法来得到返回的数据。

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

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

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

  2. Android学习笔记Intent二

    上篇随笔大概写了了Intent学习的大纲,这篇通过代码理解下Intent的ComponentName属性的使用 ComponentName,中文意思是组件名称,通过Intent的setsetCompo ...

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

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

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

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

  5. Android学习笔记之Activity详解

    1 理解Activity Activity就是一个包含应用程序界面的窗口,是Android四大组件之一.一个应用程序可以包含零个或多个Activity.一个Activity的生命周期是指从屏幕上显示那 ...

  6. Pro Android学习笔记 ActionBar(1):Home图标区

     Pro Android学习笔记(四八):ActionBar(1):Home图标区 2013年03月10日 ⁄ 综合 ⁄ 共 3256字 ⁄ 字号 小 中 大 ⁄ 评论关闭 ActionBar在A ...

  7. 【转】Pro Android学习笔记(九八):BroadcastReceiver(2):接收器触发通知

    文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog.sina.com.cn/flowingflying或作者@恺风Wei-傻瓜与非傻瓜 广播接 ...

  8. 【转】 Pro Android学习笔记(七七):服务(2):Local Service

    目录(?)[-] Local service代码 调用Local ServiceLocal Service client代码 AndroidManifestxml定义Serviceacitivty的l ...

  9. 【转】 Pro Android学习笔记(七五):HTTP服务(9):DownloadManager

    目录(?)[-] 小例子 保存在哪里下载文件信息设置和读取 查看下载状态和取消下载 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog.csd ...

随机推荐

  1. POJ2955 Brackets —— 区间DP

    题目链接:https://vjudge.net/problem/POJ-2955 Brackets Time Limit: 1000MS   Memory Limit: 65536K Total Su ...

  2. idea 设置背景图片

    按下 Ctrl+Shift+A 你会看到一个对话框 在里面输入 Set Background Image 进入设置背景图片窗口 设置背景图,点击确定即可 就一个好看,强大的编程工具了

  3. SQL Server2005+、MySQL、Oracle 数据库字典生成工具

    之前找的数据库字典生成工具基本上都依赖于 Office Com 组件,在不安装 Office的情况下无法使用.怒,于是自己用C# 写了一个.     特征如下:         一.支持的数据库 MS ...

  4. Oracle dbf文件删除后,启动服务ORA-01157问题

    有一个数据库硬盘空间满了,查看发现一个dbf超大,并且不在规定的路径下,知道是一个非重要数据文件,于是删除. 后来重启数据库时, SQL> startupORACLE instance star ...

  5. phpstorm 10 初体验

    一:安装phpstorm 10 去phpstorm 10官网下载,安装 https://www.jetbrains.com/phpstorm/ 按照提示安装,最后注册步骤,选择“License ser ...

  6. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 11. Views 上

    通常会使用外层模板的view,当做公共的模块 通常叫做_Layout.cshtml views下新建Shared文件夹 主要关注RenderBody,这里会具体渲染Action返回的内容View la ...

  7. Gym 100299C && UVaLive 6582 Magical GCD (暴力+数论)

    题意:给出一个长度在 100 000 以内的正整数序列,大小不超过 10^ 12.求一个连续子序列,使得在所有的连续子序列中, 它们的GCD值乘以它们的长度最大. 析:暴力枚举右端点,然后在枚举左端点 ...

  8. git切换分支保存修改的代码的方法(转载)

    转自:http://www.tonitech.com/2344.html 最近在一个原有的项目上做一次非常大的改版,底层的数据库做了很大的变化,跟现在的版本无法兼容.现在的工作除了开发最新的版本之外还 ...

  9. JS中的回调函数实例浅析

    本文实例讲述了JS中的回调函数.分享给大家供大家参考,具体如下: 在说回调函数之前,不妨先看一段代码,相信有点js基础的同学都能明白他的含义: ? 1 2 3 document.getElementB ...

  10. 机器学习(2):简单线性回归 | 一元回归 | 损失计算 | MSE

    前文再续书接上一回,机器学习的主要目的,是根据特征进行预测.预测到的信息,叫标签. 从特征映射出标签的诸多算法中,有一个简单的算法,叫简单线性回归.本文介绍简单线性回归的概念. (1)什么是简单线性回 ...