总结系列--系统标准Activity的Action应用
来源:互联网 发布:淘宝火锅底料好吃 编辑:程序博客网 时间:2024/05/23 05:06
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, 则不进行任何操作。
0 0
- 总结系列--系统标准Activity的Action应用
- Android系统用于Activity的标准Intent
- 我的Android进阶之旅------>启动Activity的标准Action和标准Category
- 如何获取Android系统应用的Action
- Android Activity 标准Action常量及释义
- 使用指定的Action,Category调用系统Activity
- 标准的Activity Actions
- 标准的Activity Actions
- 标准的Activity Actions
- 基于标准的指挥调度系统系列专题
- 指定Action、Category调用系统Activity
- 使用Action、Data属性启动系统Activity
- 使用Action,Data属性启动系统Activity
- 使用Action、Data属性启动系统Activity
- 指定Action,Category调用系统Activity
- Activity 固定的action跳转
- 总结系列--Activity启动模式
- X5的action应用
- Unity2d 5.1 弱联网游戏制作 (一)场景创建、添加组件、精灵移动、主摄像机跟随
- Android开发异常
- 8.24学习总结
- UVA 11427 Expect the Expected (概率dp+推公式求期望 详解)
- 华为上机试题4(坐标移动)
- 总结系列--系统标准Activity的Action应用
- java中的权限修饰
- leetCode # Convert Sorted List to Binary Search Tree
- 关于设计模式
- uva 1351 区间dp
- javaScript实现动态取得不同的验证码
- USB软硬件知识之一:综述
- [Android][转]Android多线程下安全访问数据库
- bootstrap加载model以及dataTable按钮操作