【Android开发】Activity 4种加载方式
程序员文章站
2022-06-17 17:50:52
配置Activity时可以指定android: launchMode属性,用于配置Activity的启动方式。该属性支持4个属性值:standard:标准模式,默认的加载模式singleTop:Task单例栈顶模式singleTask:Task内单例模式singleInstance:全局单例模式standard每次通过standard模式启动目标Activity时,Android总会为目标Activity创建一个新的实例,并将Activity添加到当前Task栈中。这种模式不会启动新的T...
配置Activity时可以指定android: launchMode属性,用于配置Activity的启动方式。
该属性支持4个属性值:
- standard:标准模式,默认的加载模式
- singleTop:Task单例栈顶模式
- singleTask:Task内单例模式
- singleInstance:全局单例模式
standard
每次通过standard模式启动目标Activity时,Android总会为目标Activity创建一个新的实例,并将Activity添加到当前Task栈中。
这种模式不会启动新的Task,新的Activity将被添加到原有的Task中。
singleTop
singleTop模式与standard模式基本相同,但是有一点不同:当将要启动的目标Activity已经位于栈顶时,系统不会重新创建目标Activity实例,而是直接复用已有的Activity实例。
如果将要启动的目标Activity没有位于Task栈顶,此时系统会重新创建目标Acitvity的实例,并将它添加到栈顶。
singleTask
保证同一个Task中只有一个实例,有三种情况:
- 如果将要启动的目标Activity不存在,系统将会创建目标Activity的实例,并将它加入Task栈顶。
- 如果将要启动的目标Activity已经位于Task栈顶,此时与SingleTop相同。
- 如果将要启动的Activity已经存在,但是没有位于栈顶,系统将会把位于该Acitvity上面的所有Activity上面的所有Activity移除Task栈,从而使得目标Activity转入栈顶。
singleInstance
保证无论从哪个Task中启动目标Activity,只会创建一个目标Activity实例,并会使用一个全新的Task栈来加载该Activity的实例。
- 如果将要启动的目标Activity不存在,系统会先创建一个全新的Task,再创建目标Activity的实例,并把它加入新的Task栈顶。
- 如果将要启动的目标Activity已经存在,不管它位于哪个应用程序中、位于哪个Task中,系统都会把该Activiy所在的Task转到前台,使该Activity显示出来。
采用singleInstance模式加载Activity总是位于Task栈顶,且加载的Activity所在的Task只包含该Activity。
本文地址:https://blog.csdn.net/weixin_42020386/article/details/112799490
上一篇: 苹果基带是什么,查询苹果基带的方法
下一篇: 冬至的风俗是什么
推荐阅读
-
Android程序员学PHP开发(19)-数组(1)基本概念和定义方式-PhpStorm
-
Android编程之四种Activity加载模式分析
-
Android编程开发之TextView单击链接弹出Activity的方法
-
深入解读Android开发中Activity的生命周期
-
Android的Activity加载方式实例分析
-
Android中Service与Activity之间通信的几种方式
-
Android开发笔记之Android中数据的存储方式(一)
-
Android开发笔记之Android中数据的存储方式(二)
-
Android开发之ProgressBar字体随着进度条的加载而滚动
-
Android编程之四种Activity加载模式分析