【Android开发】Activity 4种加载方式
程序员文章站
2022-03-08 23:10: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
上一篇: 从数据表中取出第n条到第m条的记录的方法
下一篇: iphone12关闭5g网络的方法
推荐阅读
-
Android开发教程之Fragment定义、创建与使用方法详解【包含Activity通讯,事务执行等】
-
Android开发之ListView列表刷新和加载更多实现方法
-
Android开发利器之pidcat安装方式
-
关于Android Activity之间传递数据的6种方式
-
在android开发中进行数据存储与访问的多种方式介绍
-
Android开发中怎样调用系统Email发送邮件(多种调用方式)
-
android开发之为activity增加左右手势识别示例
-
Android开发使用Activity嵌套多个Fragment实现横竖屏切换功能的方法
-
Android实现音乐播放进度条传递信息的两种方式(在service和activity中)
-
Android开发实现ListView异步加载数据的方法详解