当前课程知识点:Android应用开发基础 > 第二章 Android视图 > 2.2 Activity应用 > 2.2 实践案例-Activity四种启动模式
本节我们通过四个实例来介绍Activity的启动模式
本节主要介绍Activity启动模式的实现过程
首先介绍Activity启动的标准模式
点击开启新的Activity按钮依次生成了4个Activity
依次点击返回按钮
程序中的4个Activity依次销毁
首先创建一个应用程序
在菜单栏依次选择
“File”|“New” |“Create New Module”
设置应用程序的名字
在视图设置中,选择“Empty Activity”空白试图
视图的名字和布局的名字选择默认
进入res\layout\activity_main布局文件
修改布局类型为LineLayout线性布局
线性布局的排序方式orientation为vertical
新建TextView组件
text文本为第一个Activity
设置对齐方式为center
文本大小为20dp
新建第一个Button组件
设置宽度为“match_parent”
设置高度为“wrap_content”
id为"btn_jump"
Button组件文本为“开启新的Activity”
新建第二个Button组件
设置宽度为“match_parent”
设置高度为“wrap_content”
设置id为“ btn_jumptoSecond"
Button组件文本为“开启第二个Activity”
在配置信息文件AndroidMainfest.xml文件中
设置"MainActivity"的启动模式
launchMode为“standard”
进入MainActivity类
使用LayoutCreator插件
对布局中的组件进行初始化
在Button响应函数onClick中
新建一个启动自身Acvitiy的意图intent
使用StartActivity方法开启意图
在MainActivity类中
新建一个私有字符变量TAG用于标签
新建一个私有字符变量TAG用于标签
新建一个私有字符变量TAG用于标签
新建一个全局静态变量iActNum用于计数
在onCreate函数中
每启动一次将iActNum加一
视图每启动一次
使用Logd将onCreate函数启动的次数记录
重写Activity的onRestart方法
视图每重新启动一次
使用Logd将onRestart函数启动的次数记录
获取类名,赋予变量TAG
重写Activity的onDestroy方法
视图每销毁一次
使用Logd将onDestroy函数的次数记录
每销毁一次将iActNum加一
代码编写完成后运行程序
使用Logcat日志抓取窗口查看信息
点击开启新的Activity按钮
程序依次生成了4个Activity
依次点击返回按钮
程序中的4个Activity依次销毁
下面来介绍Activity启动的单栈顶模式
点击开启新的Activity 由于Activity在栈顶
不会开启第二个Activity
在FirstActivity点击开启第二个Activity
程序会生成新的SecondActivity
在SecondActivity点击开启第三个Activity
由于FirstActivity不在栈顶
程序会启动第二个FirstActivity
在包中新建一个新的Activity
设置名称为SecondActivity
进入res\layout\activity_second布局文件
修改布局类型为LineLayout线性布局
线性布局的排序方式orientation为vertical
新建TextView组件
设置宽度为“match_parent”
设置高度为“wrap_content”
设置id为“textview1”
设置对齐方式为center
文本为“第二个Activity”
文本大小为20dp
新建Button组件
设置宽度为“match_parent”
设置高度为“wrap_content”
id为“btn_jumptoThird
Button组件文本为“开启第三个Activity”
进入MainActivity类
在Button响应函数onClick中
新建一个启动SecondAcvitiy的意图intent1
使用StartActivity方法开启意图
进入SecondAcvitiy类
使用LayoutCreator插件
对布局中的组件进行初始化
在SecondAcvitiy类中
新建一个全局静态变量iActNum用于计数
新建一个私有字符变量TAG用于标签
在onCreate函数中 每启动一次将iActNum加一
视图每启动一次
使用Logd将onCreate函数启动的次数记录
在initView函数中使用getLocalClassName
获取当前类的名称
并赋值给TAG
重写Activity的onDestroy方法
视图每销毁一次
使用Logd将onDestroy函数的次数记录
每销毁一次将iActNum减一
在Button响应函数onClick中
新建一个启动FirstAcvitiy的意图intent
使用StartActivity方法开启意图
在配置信息文件AndroidMainfest.xml文件中
设置"MainActivity"的启动模式
为launchMode为“singleTop”
代码编写完成后运行程序
使用Logcat日志抓取窗口查看信息
设置Log Tag的关键字
为“SecondActivity”
FirstActivity中点击开启新的Activity按钮
程序不会生成新的FirstActivity
在FirstActivity点击开启第二个Activity
程序会生成新的SecondActivity
在SecondActivity点击开启第一个Activity
程序会重新启动第一个Activity
下面介绍Activity启动的单任务模式
如果活动在栈内存在 不会再启动一个新的实例
启动就会置为栈顶
那么在FirstActivity中点击第二个Activity
程序会生成新的SecondActivity
在SecondActivity点击开启第一个Activity
程序会重新启动第一个Activity
在配置信息文件AndroidMainfest.xml文件中
设置"MainActivity"的启动模式
launchMode为“singleTask”
设置"SecondActivity"的启动模式
launchMode为“singleTask”
代码编写完成后运行程序
使用Logcat日志抓取窗口查看信息
在FirstActivity点击开启第二个Activity
程序会生成新的SecondActivity
在SecondActivity点击开启第一个Activity
程序会重新启动第一个Activity
下面介绍Activity启动的单任务模式
活动设置为单任务模式 活动单独在一个视图栈
依次启动活动1到活动3活动2单独在一个视图栈
点击返回时 活动3销毁后活动1到达栈顶
活动1销毁后活动2销毁
单实例模式会启用一个新的活动管理栈
三个Activity 其中第二个设置为单实例模式
在包中新建一个新的Activity
设置名称为ThirdActivity
进入res\layout\activity_third布局文件
修改布局类型为LineLayout线性布局
线性布局的排序方式orientation为vertical
新建TextView组件
设置宽度为“match_parent”
设置高度为“wrap_content”
设置id为“text3”
text文本为第三个Activity
文本大小为20dp
设置对齐方式为center
新建Button组件
设置宽度为“match_parent”
设置高度为“wrap_content”
id为 “btn_jumptoSecond
Button组件文本为“开启第二个Activity”
进入ThirdAcvitiy类
使用LayoutCreator插件
对布局中的组件进行初始化
在ThirdAcvitiy类中
新建一个全局静态变量iActNum用于计数
新建一个私有字符变量TAG用于标签
在onCreate函数中 每启动一次将iActNum加一
视图每启动一次 使用Logd
将onCreate函数启动的次数记录
在initView函数中使用getLocalClassName
获取当前类的名称 并赋值给TAG
重写Activity的onDestroy方法
视图每销毁一次 使用Logd
将onDestroy函数的次数记录
每销毁一次将iActNum减一
进入SecondActivity类
在Button响应函数onClick中
新建一个启动ThirdAcvitiy的意图intent
使用StartActivity方法开启意图
在配置信息文件AndroidMainfest.xml文件中
设置"SecondActivity"的启动模式
launchMode为“singleInstance”
设置"ThirdActivity"的启动模式
launchMode为“singleTask”
代码编写完成后运行程序
使用Logcat日志抓取窗口查看信息
设置Log Tag的关键字
应用程序类名“ThirdActivity”
依次启动活动1到活动3
其最终活动2单独在一个视图栈
点击返回时 活动3销毁后活动1到达栈顶
活动1销毁后活动2销毁
这就是Activity四种启动模式的全部内容
请大家按照讲课的内容完成四种启动模式
在Android的模拟器和手机中分别运行
通过日志季节四种启动模式的差异
-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章 在线点餐系统