Activity启动模式和任务栈

android中Activity的启动模式有4中。

  • standard

默认模式。每次启动Activity都会创建新的实例,放入到任务栈中。

  • singleTop

如果任务栈顶存在该Activity实例,重用之。否则创建新实例并放入栈顶。

  • singleTask

如果任务栈中存在Activity实例,重用之,该实例回到栈顶,其上的实例被移除出栈。否则创建新的放入栈中

  • singleInstance

在新的任务栈中创建Activity实例。任何应用启动该Activity都会重用这个栈中的实例。一个栈对应一个实例

清理栈

默认情况下,当一个任务栈长期保持在后台。系统将会清除此任务栈中除根Activity(开辟任务栈)外的实例。

<Activity>标签提供了一些属性可以设置

  • alwaysRetainTaskState

如果根Activity的此属性设置为true, 系统将不会清理这个任务栈,即便长期保持在后台。

  • clearTaskOnLaunch

如果根Activity的此属性设置为true,当任务栈保持在后台,系统将会清除此任务栈中除根Activity外的实例

  • finishOnTaskLaunch

此属性作用与单个Activity。当任务栈保持在后台,此属性可以使任务栈清理包括根Activity在内的所有实例

另外,当Intent包含FLAG_ACTIVITY_CLEAR_TOP标志,如果存在该目标实例,目标任务栈中此实例之上的实例将被移除。此实例启动模式为standard时,也将被移除,并创建新的实例。

时间: 2024-10-13 15:51:26

Activity启动模式和任务栈的相关文章

Activity启动模式 及 Intent Flags 与 栈 的关联分析

   在学习Android的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制,其底层的通信是以Binder机制实现的,在物理层则是通过共享内存的方式实现的.     Intent主要用于2种情景下:(1)发起意图  (2)广播     它的属性有:ComponentName,action,data,category,extras,flags等,通常情况下,进行Intent的匹配涉及到3个属性:Action,Data,Category.这些东西都需要了解才能对它有个深入的

【转】Activity启动模式 及 Intent Flags 与 栈 的关联分析

http://blog.csdn.net/vipzjyno1/article/details/25463457    在学习Android的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制,其底层的通信是以Binder机制实现的,在物理层则是通过共享内存的方式实现的.     Intent主要用于2种情景下:(1)发起意图  (2)广播     它的属性有:ComponentName,action,data,category,extras,flags等,通常情况下,进行

【Android基础】Activity启动模式以及Intent Flags 与 栈 的全面解析

Android开发的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制. Intent主要用于2种情景下:发起意图 .广播 其底层实现原理不在此篇文章的讨论范围,以后会陆续更新上的. 下面我就根据近期学习,总结记录下Activity启动模式 及 Intent Flags 与 栈 的关联分析. 1.首先我们先搞清楚什么是栈: 栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元

(六十一)Activity启动模式 及 Intent Flags 与 栈 的关联分析(转载自:http://blog.csdn.net/vipzjyno1/article/details/25463457)

   在学习Android的过程中,Intent是我们最常用Android用于进程内或进程间通信的机制,其底层的通信是以Binder机制实现的,在物理层则是通过共享内存的方式实现的.     Intent主要用于2种情景下:(1)发起意图  (2)广播     它的属性有:ComponentName,action,data,category,extras,flags等,通常情况下,进行Intent的匹配涉及到3个属性:Action,Data,Category.这些东西都需要了解才能对它有个深入的

任务栈和Activity启动模式

!!任务栈和Activity启动模式!! https://blog.csdn.net/ws6013480777777/article/details/83829789 https://blog.csdn.net/infsafe/article/details/5666964 https://developer.android.com/guide/components/activities/tasks-and-back-stack 一直觉得官方和网上很多对于启动模式和intent的flag的介绍是

深入Activity,Activity启动模式LaunchMode完全解析

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53221384 本文出自[DylanAndroid的博客] 深入Activity,Activity启动模式LaunchMode完全解析 在平时的开发中,我们可能会了解到Activity的任务栈还有Activity的启动模式.那么Activity的启动模式都分别是怎么样的呢?如果设置了这些启动模式对任务栈有事么影响 ,还有就是这么启动模式在实际的开发中有什么应用呢?这里用图例和d

Android中Activity启动模式详解,可以控制程序按home键后进来还会调用一个自己不喜欢的界面

其实这是很简单的一个问题.但是这还是要对android中activity的启动模式有相当的理解才行,当点击home键的时候,懂Android的人都知道,他会把当前activity放到后退栈中, 栈(Stack)又称堆栈,它是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算.人们把此端称为栈顶,栈顶的第一个元素被称为栈顶元素,相对地,把另一端称为栈底.向一个栈插入新元素又称为进栈或入栈,它是把该元素放到栈顶元素的上面,使之成为新的栈顶元素:从一个栈删除元素又称为出栈或退栈,它是把栈

Activity启动模式

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. Android总Activity的启动模式分为四种: Activity启动模式设置: <activity android:name=".MainActivity" android:launchMode="standard" /> Activity的四种启动模式:

Android Activity启动模式

在Android的联机文档中,有对Activity的简单介绍,现在通过编写代码对Activity的启动模式做一个深入的理解.在配置文件AndroidManifest.xml中,activity元素的android:launchMode属性用来配置对应Activity的启动模式,目前有以下四种启动模式:1.standard2.singleTop3.singleTask4.singleInstance如果不对Activity设置启动模式,默认就是standard模式 一.standard 请看以下代