当前课程知识点:Android应用开发基础 > 第二章 Android视图 > 2.2 Activity应用 > 2.2 Activity应用
本节我们主要介绍Activity视图的应用
主要包括下面两方面的内容
1 Activity间的数据传递
主要了解Activity之间的
数据传递原理和使用方法
2 Activity的启动模式
了解Activity的四种启动模式
下面是Activity之间进行数据传递的一个实例
第一个Activity中输入用户名admin
并将用户名传递给第二个Activity
第二个Activity读取到
第一个Activity传递的用户名admin
第二个Activity跳转回第一个Activity
并传回参数值sziit
第一个Activity读取并显示参数值
Acitivity之间通过Intent传递数据
Intent提供了putExtra方法存储数据
通过startActivityForResult启动方法
得到返回值
下面是跳转过程中数据传递实现过程
1 使用Intent类的putExtra方法
存储键值user的数据admin
使用startActivityForResult方法
启动第二个Activity
第二个Activity返回的代码为REQUEST_CODE
2 使用重写的onActivityResult方法
接收第二个Activity的传回值
传回的数据通过Intent的
getStringExtra方法获取
并将值显示到文本控件
下面是第二个Activity接收数据的过程
1 通过键值user
使用Intent类的getStringExtra方法
获取第一个Activity的数据admin
并将值显示到第二个Activity文本控件
2 使用Intent类的putExtra方法
存储键值password的数据sziit
3 使用setResult方法
将意图传回给第一个Activity
设置标记为
Activity有四种启动模式
首先我们介绍标准模式
标准模式就是每启动一个活动
就创建一个新的实例
例子如下
AndroidManifest.xml配置信息文件中
设置Activity的启动模式为standard
点击按钮启动Activity的代码如下
每次单击启动一个新的MainActivity
标准模式下启动的实例如下图
首先启动第一个MainActivity
在第一个MainActivity中
单击启动第二个MainActivity
在第二个MainActivity中
单击启动第三个MainActivity
三个MainActivity的视图栈的关系如图所示
三个MainActivity依次入栈
先进后出
从LogCat日志中
可以看到三个MainActivity
依次启动onCreate方法
三个MainActivity依次通过Back键删除
可以看到三个MainActivity
依次启动onDestroy方法
下面介绍单栈顶模式
单栈顶模式就是如果活动在栈顶
不会再启动一个新的实例
如果不在栈顶
会启动新的实例
我们在配置信息文件中设置
Activity的启动模式为singleTop
在MainActivity增加一个
跳转到第二个SeccondActivity的按钮
每次单击跳转到SeccondActivity
在SeccondActivity中增加一个
跳转到第一个MainActivity的按钮
每次单击跳转到MainActivity
在Activity初始化的函数中
增加一个计数标签
记录是MainActivity第几次被加载
标准模式下启动的实例如下图
首先启动第一个MainActivity
在第一个MainActivity中
单击启动SeccondActivity
在SeccondActivity中
单击启动第一个MainActivity
三个Activity的视图栈的关系如图所示
三个Activity依次入栈
先进后出
从LogCat日志中可以看到
三个Activity依次启动onCreate方法
第一个MainActivity中启动MainActivity
不会生成新的实例
第二个SeccondActivity中启动MainActivity
会生成新的实例
三个Activity依次通过Back键删除
可以看到三个Activity
依次启动onDestroy方法
下面介绍单任务模式
单任务模式就是如果活动在栈内存在
不会再启动一个新的实例
如果启动就会将活动置为栈顶
在AndroidManifest.xml中
配置信息文件
设置Activity的启动模式为singleTask
在MainActivity中
增加一个跳转到第二个SeccondActivity的按钮
每次单击跳转到SeccondActivity
单任务模式下启动的实例如下图
首先启动第一个MainActivity
在第一个MainActivity中
单击启动SeccondActivity
在SeccondActivity中
单击启动第一个MainActivity
Activity的视图栈的关系如图所示
二个Activity依次入栈
先进后出
从LogCat日志中可以看到
二个Activity依次启动onCreate方法
第二个SeccondActivity中
开启第一个MainActivity
不会生成新的实例
只是执行了第一个MainActivity的
onRestart方法
下面介绍单实例模式
如果视图是单实例模式
启动视图会同时启用一个新的活动管理栈
在AndroidManifest.xml配置信息文件中
设置Activity的加载模式为singleInstance
MainActivity设置为singleTop模式
SeccondActivity设置为singleInstance模式
ThirdActivity设置为singleTask模式
在SeccondActivity增加一个跳转到
第三个ThirdActivity的按钮
每次单击跳转到ThirdActivity
在ThirdActivity中增加一个跳转到
第二个SeccondActivity的按钮
每次单击跳转到SeccondActivity
单实例模式下启动的实例如下图
依次启动MainActivity
SeccondActivity和ThirdActivity
Activity的视图栈的关系如图所示
MainActivity和ThirdActivity在一个视图栈
SeccondActivity由于是单实例模式
启动后在另外一个视图栈
从LogCat日志中可以看到
三个视图依次启动了onCreate方法
在回退过程中
ThirdActivity直接回退到MainActivity
而MainActivity回退到SeccondActivity
SeccondActivity最后销毁
好 这就是AndroidActivity的四种启动模式
本节内容结束
-Android Studio4.1.2安装常用问题汇总2021.3.15
-1.1 Android概述
--1.1 Android Studio安装与配置-实践案例
-1.1 Android概述--作业
-1.2 Android程序
-1.2 Android程序--作业
-1.3 Android程序调试
-1.3 Android程序调试--作业
-2.1 Activity概述
-2.1 Activity概述--作业
-2.2 Activity应用
-第2章 Android视图--2.2 Activity应用
-3.1 Activity布局
-3.1 Activity布局--作业
-3.2 Android基础组件
-3.2 Android基础组件--作业
-3.3 Android中级组件
-3.3 Android中级组件--作业
-3.4 Android适配器
-3.4 Android适配器--作业
-4.1 Fragment碎片组件
-4.1 Fragment碎片组件--作业
-4.2 ViewPager翻页类组件
-4.2 ViewPager翻页类组件--作业
-讨论:fragment与activity的生命周期有哪些不同?
-5.1 Android广播概述
-5.1 Android广播概述--作业
-5.2 Android广播工作原理
-5.2 Android广播工作原理--作业
-5.3 自定义广播
-第5章 广播--5.3 自定义广播
-5.4 有序广播
--5.4有序广播
-第5章 广播--5.4 有序广播
-6.1 系统服务概述
-6.1 系统服务概述--作业
-6.2 访问系统服务
-6.2 访问系统服务--作业
-6.3 自定义服务
-第6章 Android服务--6.3 自定义服务
-6.4 多线程
--6.4 多线程
-第6章 Android服务--6.4 多线程
-7.1 Android运行权限
-7.1 Android运行权限--作业
-7.2 URL URI概述
-第7章 内容提供者ContentProvider--7.2 URL URI概述
-7.3 ContentProvider概述
-第7章 内容提供者ContentProvider--7.3 ContentProvider概述
-7.4 访问通讯录
-第7章 内容提供者ContentProvider--7.4 访问通讯录
-7.5 课后作业案例
-8.1 相机服务
--8.1 相机服务
-8.1 相机服务--作业
-8.2 音视频服务
-8.2 音视频服务--作业
-9.1 网络服务概述
-9.1 网络服务概述--作业
-9.2 网络框架
--9.2 网络框架
-9.2 网络框架--作业
-9.3 Json
--9.3 Json
-第9章 网络技术--9.3 Json
-9.4 Volley
-第9章 网络技术--9.4 Volley
-10.1 文件存储
--10.1.3 实践案例-SharedPreference文件读写
-10.1 文件存储--作业
-10.2 数据库存储
-10.2 数据库存储--作业
-第1章 实训简介以及开发环境配置
-第2章 在线音乐播放器整体设计以及服务端开发
-第3章 在线音乐播放器-客户端开发
-第4章 在线音乐播放器-完整版
-第5章 QQ聊天项目
-第6章 在线点餐系统