Activity 四种启动模式详细介绍
Activity 四种启动模式详细介绍
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。
Android总Activity的启动模式分为四种:
Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" /> <activity android:name=".MainActivity" android:launchMode="singleTop" /> <activity android:name=".MainActivity" android:launchMode="singleTask" /> <activity android:name=".MainActivity" android:launchMode="singleInstance" />
Activity的四种启动模式:
. standard
模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。
. singleTop
如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例)。
. singleTask
如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent())。重用时,会让该实例回到栈顶,因此在它上面的实例将会被移除栈。如果栈中不存在该实例,将会创建新的实例放入栈中。
. singleInstance
在一个新栈中创建该Activity实例,并让多个应用共享改栈中的该Activity实例。一旦改模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。
注:当为第四种启动方式时,点击返回键时activity的释放顺序回有所不同,如:FirstActivity设置为singleInstance,启动Activity的顺序为Main->First->Main->first->main,会有如下两个activity栈:
当点击返回键时,Activity的释放顺序如下:先时释放掉Task1中的三个MainActivity,然后再释放Task2中的FirstActivity。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
简单介绍Android中Activity的四种启动模式
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Activity有四种启动模式: 1. standard,默认的启动模式,只要激活Activity,就会创建一个新的实例,并放入任务栈中,这样任务栈中可能同时有一个Activity的多个实例. 2. singleTop,激活Activity时,如果栈顶是这个Activity,就不会创建新的实例:如果栈顶
-
详解Activity之singletast启动模式及如何使用intent传值
Activity的四种启动模式: 1. standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中. 2. singleTop 如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已经存在该Activity实例,只要不在栈顶,都会创建实例). 3. singleTask 如果在栈中已经有该Activity的实例,就重用该实例(会调用实例的onNewIntent()).重用时,会让该实例回到栈顶,因此在它
-
Android中activity的启动模式
activity的启动模式一共有四种:standard.singleTop.singleTask和singleInstance,可以在AndroidMannifest.xml中通过给<activity>标签指定android:launchMode属性来选择启动模式. 1.standard 是活动默认的启动模式,Android是使用返回栈来管理活动,standard模式下,每启动一个新的活动,它就会在返回栈中入栈,并处于栈顶位置.系统不会在乎这个活动是否已经在返回栈中存在,每次启动都会创建该活动
-
Android Activity启动模式之singleTask实例详解
本文实例分析了Android Activity启动模式之singleTask.分享给大家供大家参考,具体如下: 前面的文章介绍了Android 活动Activity的启动模式:standard 和singleTop .本文继续介绍Activity的下一个启动模式:singleTask. singleTask:当设置活动的启动模式为singleTask时,首先检查返回栈中是否存在当前活动,如果存在当前活动的实例,则直接使用当前实例,并把当前活动之上的所有活动pop出栈,即当前活动位于栈顶位置. 代
-
Android入门之Activity四种启动模式(standard、singleTop、singleTask、singleInstance)
当应用运行起来后就会开启一条线程,线程中会运行一个任务栈,当Activity实例创建后就会放入任务栈中.Activity启动模式的设置在AndroidManifest.xml文件中,通过配置Activity的属性android:launchMode=""设置. 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置: 启动模式有4种,分别为standard.singleTop.s
-
Android中Activity生命周期和启动模式详解
Activity生命周期经典图解: 按键对生命周期的影响: BACK键: 当我们按BACK键时,我们这个应用程序将结束,这时候我们将先后调用onPause()->onStop()->onDestory()三个方法. 再次启动App时,会执行onCreate()->onStart()->onResume() HOME键: 当我们打开应用程序时,比如浏览器,我正在浏览NBA新闻,看到一半时,我突然想听歌,这时候我们会选择按HOME键,然后去打开音乐应用程序,而当我们按HOME的时候,A
-
Android Activity启动模式之singleTop实例详解
本文实例讲述了Android Activity启动模式之singleTop.分享给大家供大家参考,具体如下: 在前面文章<Android Activity启动模式之standard实例详解>中,我们介绍了活动的默认启动模式standard,本文继续介绍Activity的singleTop模式. singleTop模式:当Activity的活动模式设置为singleTop时,在启动活动时首先检查栈顶活动是否是该活动,如果是,在使用当前实例,否则继续创建新的实例. (1)修改AndroidMani
-
如何正确理解和使用Activity的4种启动模式
关于Activity启动模式的文章已经很多,但有的文章写得过于简单,有的则过于注重细节,本文想取一个折中,只关注最重要和最常用的概念,原理和使用方法,便于读者正确应用. Activity的启动模式有4种,分别是standard.singleTop. SingleTask. singleInstance,可以在AndroidMainifest.xml文件中指定每一个Activity的启动模式.一个Android应用一般都会有多个Activity,系统会通过任务栈来管理这些Activity,栈是一种
-
Android Activity启动模式之standard实例详解
本文实例讲述了Android Activity启动模式之standard.分享给大家供大家参考,具体如下: Android的活动是通过任务Task来进行管理的,一个任务就是一组放在栈里的活动的集合,即所谓的返回栈(Back Stack).栈具有先进后出.后进先出的特性.当启动一个活动时,活动会在返回栈中入栈,处于栈顶位置,当按下返回键或者调用finish方法会销毁一个活动,此时栈顶活动会出栈,届时又会有新的活动处于栈顶位置. 在Android中,活动的启动模式有四种,根据不同的需求可以为活动设置
-
Activity 四种启动模式详细介绍
Activity 四种启动模式详细介绍 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" /&
-
Android LaunchMode四种启动模式详细介绍
Android LaunchMode详解 越是做的时间越长,基础知识就忘的越干净,最近做一个项目中,发现启动的几个Activity居然重叠了,我ri--,再不回忆一下就要退出Android界了. 概念解释 Task Task叫做任务,这个简单,表示我们需要完成的事情,注意,这里我们说的是任务,是个名词,例如要发短信,那我们的任务就是发送一条短信,仅此而已,再例如教官说:"张三,你去吃屎!",ok,那张三的任务就是吃屎. Back Stack 我们常叫做回退栈,或者是任务栈,这个是什么意
-
Android中Activity的四种启动模式和onNewIntent()
写在前面 Activity是Android四大组件之一,用于直接跟用户进行交互,本篇文章将介绍Activity的启动流程.用户启动Activity的方式大致有两种:一种是在桌面点击应用程序的图标,进入应用程序的主界面:另一种是在应用程序中,进入一个新的Activity.前者,桌面其实是系统应用launcher的界面,点击应用程序图标,会进行应用程序的主界面,实质是从一个应用的Activity进入另一个应用Activity. 因此,不管是从桌面进入应用主界面,还是在应用里进入一个新的Activit
-
Android Activity的4种启动模式图文介绍
前言 记得第一次探讨Activity的启动模式,是在2017年8月份,那个时候对一年后走出校门的未来很是憧憬,时间真快,已经毕业四个月,工作和生活也都趋于稳定. 一.小前言 相信很多人和我一样,在初学Android甚至初入职场的时候不了解Acticity的启动模式,或者为了面试刷题刷到了,但并不理解启动模式的作用,以及如何正确的使用启动模式而不是所有的都是用默认模式. 二.Activity启动模式简介 Activity有四种启动模式,standard.singleTop.singleTask.s
-
Android编程中Activity的四种启动模式
本文实例讲述了Android编程中Activity的四种启动模式.分享给大家供大家参考,具体如下: Activity启动方式有四种,分别是: standard singleTop singleTask singleInstance 可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题. 设置Activity的启动模式,只需要在AndroidManifest.xml里对应的<activity>标签设置android:launchMode属性,例
-
Android 启动模式详细介绍
Android 启动模式: 启动模式:LaunchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里. 这里简单介绍一下任务栈task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task.任务栈里面的Activity是按照先进后出的形式保存的,比如:你打开一个页面,在页面中打开另一个页
-
C++四种case的详细介绍小结
目录 一.static_case 1.基本数据类型转换 2.指针和void指针的转换 3.父类和子类之间的转换 二.dynamic_case 三.const_case 1.加上const 2.去掉const 四.reinterpret_case 在C++中,我们经常使用到类型的转换,像把一个int类型转换成char类型,一个int类型转换成double类型,这些转换属于隐式类型转换.而今天我们要来讲的是显式类型转换.C++提供了四种显式类型转换,分别是:static_cast.dynamic_c
-
C++四种cast使用详细介绍
目录 一.static_cast 1.基本数据类型转换 2.指针和void指针的转换 3.父类和子类之间的转换 二.dynamic_cast 三.const_cast 1.加上const 2.去掉const 四.reinterpret_cast 在C++中,我们经常使用到类型的转换,像把一个int类型转换成char类型,一个int类型转换成double类型,这些转换属于隐式类型转换.而今天我们要来讲的是显式类型转换.C++提供了四种显式类型转换,分别是:static_cast.dynamic_c
随机推荐
- 浅谈数据库事务四大特性
- json传值以及ajax接收详解
- AngularJS 异步解决实现方法
- Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
- 批处理文件(bat文件)注册dll批量注册dll
- java打包成可执行的jar或者exe的详细步骤
- 《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
- Java实现文件批量重命名具体实例
- CentOS 7 在vmware中的网络设置详细介绍
- javascript 广告移动特效的实现代码
- 使用配置类定义Codeigniter全局变量
- Android标题栏中添加返回按钮功能
- js CSS3实现卡牌旋转切换效果
- php实现两个数组相加的方法
- 关于Ajax技术原理的3点总结
- SqlServer如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息
- 微信小程序 后台登录(非微信账号)实例详解
- Jquery下:nth-child(an+b)的使用注意
- Android自动填充短信验证码功能(demo)
- 5 种JavaScript编码规范