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. MAC 开发 stm32 程序

    资料:http://www.cnblogs.com/humaoxiao 大神技术.

  2. hihocoder-1347 小h的树上的朋友(lca+线段树)

    题目链接: 小h的树上的朋友 时间限制:18000ms 单点时限:2000ms 内存限制:512MB 描述 小h拥有n位朋友.每位朋友拥有一个数值Vi代表他与小h的亲密度.亲密度有可能发生变化. 岁月 ...

  3. Struts2声明式异常处理

    通过配置.xml文件的方式处理异常信息: 注意:配置.xml文件的同时还要抛出异常 标签:<exception-mapping></exception-mapping>和< ...

  4. 如何用JavaScript实现获取验证码的效果

    转自:http://www.php.cn/js-tutorial-411734.html HTML部分: 1 2 3 4 5 6 7 <body onload='createCode()'> ...

  5. windows动态磁盘导致的分区问题

    上次说到由于装双系统导致我的win7启动不了了,一直以为是不是在ubuntu的安装界面点错了什么东西导致的,甚至认为是不是server的安装程序有点bug,直到今天继续折腾才发现了问题所在,跟ubun ...

  6. PTA 计算平均值

    现在为若干组整数分别计算平均值. 已知这些整数的绝对值都小于100,每组整数的数量不少于1个,不大于20个. 输入格式:首先输入K(不小于2,不大于20).接下来每一行输入一组数据(至少有一组数据), ...

  7. 关于国债的一些计算: 理论TF价格1(缴款日前无付息)

    计算 ExpectedTFPrice 是一个比较复杂的计算,我们这里讨论简单的一种情况. 给定一只可交割国债bond(一般为CTD),一个国债期货tf,一个日期t(表示tf的一个交易日期,我们通过t日 ...

  8. 洛谷P3577 [POI2014]TUR-Tourism

    给定一个n个点,m条边的无向图,其中你在第i个点建立旅游站点的费用为Ci.在这张图中,任意两点间不存在节点数超过10的简单路径.请找到一种费用最小的建立旅游站点的方案,使得每个点要么建立了旅游站点,要 ...

  9. MySQL 错误码对照

    1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件导致删除数据库失败 1010:不能删除数据目 ...

  10. 自适应的两端对齐:text-align:justify

    <!DOCTYPE HTML> <html> <head> <title>文本两端对齐 by hongchenok</title> < ...