文档章节

总结系列--系统标准Activity的Action应用

k
 kim366
发布于 2016/05/13 19:13
字数 1166
阅读 8
收藏 0
        6.2   系统标准ActivityAction应用
       在Android系统中,应用程序一般都有多个Activity,Intent可以实现不同Activity之间的切换和数据 传递。 
       启动Activity方式有以下两种方式。
            显式启动,必须在Intent中指明启动的Activity所在的类。
            隐式启动,Android系统根据Intent的动作和数据来决定启动哪一个Activity,即在隐式启动时, Intent中只包含需要执行的动作和所包含的数据,而无须指明具体启动哪一个Activity,选择权由Android系统和最终用户来决定。

       1.显式启动
      使用Intent 显式启动Activity,首先需要创建一个Intent,指定当前的应用程序上下文及要启动的 Activity,并把创建好的Intent作为参数传递给startActivity()方法。代码如代码清单6-1所示。
      
       2.隐式启动
       隐式启动Activity时,Android系统在应用程序运行时解析Intent,并根据一定的规则对Intent和Activity 进行匹配,使Intent上的动作、数据与Activity完全吻合。而匹配的Activity可以是应用程序本身的,也可以是Android系统内置的,还可以是第三方应用程序提供的。因此,这种方式更强调了Android应用程序中组件的可复用性。 
       由此可以看出,隐式启动不需要指明需要启动哪一个Activity,而由Android系统来决定,有利于使用 第三方组件。
       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
       startActivity(intent); 

      在上述代码中,Intent的动作是Intent.ACTION_VIEW,是根据Uri的数据类型来匹配动作;数据部分 的Uri是Web地址,使用Uri.parse(urlString)方法,可以简单地把一个字符串解释成Uri对象。
       Intent的语法
      Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlString));
      Intent构造函数的第1个参数是Intent需要执行的动作;第2个参数是Uri,表示需要传递的数据。
      Android系统支持的常见动作字符串常量表

      
       6.2.2   获取Activity返回值
       在6.2.1节的IntentDemo示例中,通过使用startActivity(Intent)方法启动Activity后,两个Activity 之间相互独立,没有任何关联。然而,在很多情况下,后启动的Activity是为了让用户对特定信息进行选择,在关闭这个Activity后,用户的选择信息需要返回给未关闭的那个Activity。由此,按照Activity启动的先后顺序,先启动的称为父Activity,后启动的称为子Activity,如果需要将子Activity的部分信息返回给父Activity,则可以使用Sub-Activity的方式去启动子Activity。
       获取子Activity的返回值,一般分以下3个步骤。
       1. 以Sub-Activity的方式启动子Activity 
       首先,调用startActivityForResult(Intent, requestCode)函数,其中,参数Intent用于决定启动哪个Activity, 参数requestCode是唯一的标识子Activity的请求码。
       
       2.设置子Activity的返回值
       在子Activity调用finish()函数关闭前,调用setResult()函数将所需的数据返回给父Activity。其中, setResult()函数有两个参数:结果码和返回值。结果码表明了子Activity的返回状态, 通常为Activity.RESULT_OK或Activity.RESULT_CANCELED,或自定义的结果码,结果码均为整数类型;返回值封装在Intent中,子Activity通过Intent将需要返回的数据传递给父Activity。数据主要是Uri形式,可以附加一些额外信息,这些额外信息用Extra的集合表示
     
       3.在父Activity中获取返回值
       当子Activity关闭时,启动它的父Activity的onActivityResult()函数将被调用;如果需要在父Activity 中处理子Activity的返回值,则覆盖此函数即可。      
       此函数的语法如代码清单6-14所示。 
       在上述代码中,第1个参数requestCode,用来表示是哪一个子Activity的返回值;第2个参数resultCode 用于表示子Activity的返回状态;第3个参数data是子Activity的返回数据,返回数据类型是Intent。返回数据的用途不同,Uri数据的协议也就不同。也可以使用Extra方法返回一些原始类型的数据。  
 
       在上述代码中,第1行代码和第2行代码是两个子Activity的请求码;第7行代码对请求码进行匹配; 第9行和第11行代码对结果码进行判断,如果返回的结果码是Activity.RESULT_OK,则在代码的第10行使用getData()函数获取Intent 中的Uri数据;反之,若返回的结果码Activity.RESULT_CANCELED, 则不进行任何操作。


本文转载自:http://blog.csdn.net/oyangyujun/article/details/47961405

k
粉丝 1
博文 129
码字总数 0
作品 0
朝阳
私信 提问
升级之前必看,关于安卓P的几大新特性,你知道吗?

  近日,安卓最新系统Android 9已经正式开始推送升级,Android 9的代号为Android P,在近日确认名为馅饼(pie),首批支持推送更新的机型是Google“亲儿子”Pixel系列,接着便是安卓手机之...

人工智能那点事
2018/08/10
0
0
Android:这是一份全面 & 详细的动画入门学习指南

前言 动画的使用 是 开发中常用的知识 可是动画的种类繁多、使用复杂,每当需要 采用自定义动画 实现 复杂的动画效果时,很多开发者就显得束手无策 本文将献上一份动画简介,包括动画的种类、...

Carson_Ho
07/23
0
0
BroadcastReceiver与Notification的综合应用自定义Action的调用方式

在Android的实际应用开发中,我们经常会遇到数据推送的相关技术,比如在应用软件启动后,系统会自动在Android的通知栏弹出相应的信息,以便于提示用户进行相关的操作或消息推送。那这项技术在...

zretc
2013/07/18
319
0
自定义View中Measure过程基础:MeasureSpec类

前言 在了解自定义三大流程的过程前,我们需要了解一个重要基础: 今天,我将全面解析 类的相关知识,希望你们会喜欢 文章较长,建议收藏等充足时间再进行阅读 目录 int specMode = Measure...

Carson_Ho
06/19
0
0
Android系统中标准Intent的使用

一 Android系统用于Activity的标准Intent 1 根据联系人ID显示联系人信息 Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW); //显示联系人信息intent.setData(Uri.parse(......

厚德
2015/05/18
99
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
50分钟前
4
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
今天
6
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
今天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
今天
6
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部