(Android review) 任务栈与启动模式

这一个知识点主要以理解为主:

一、任务栈(task stack)

1、作用:就是用来管理activity的进入,退出。记录了用户的行为。

2、举例:

假如要进行一下操作:

这时候,任务栈中的activity的情况如下:

二、启动模式

1、配置:

for example:

<activity
           XXXX
            android:configChanges="orientation|keyboardHidden">

2、分类:

standard:单击一个activity就新建一个activity

singleTop:如果要启动的activity已经在栈顶,那么这是就不会新建一个activity

singleTask:如果要启动的activity已经在任务栈中,则,他会找到这个activity,并把这个activity
上面所有的activity都清空,然后重用这个activity。

singleInstance:这样的activity会占用一个单独的任务栈。启动这样的activity时,如果发现任务栈中已经有
这个activity的引用,则会断掉之前的引用

3、举例说明:

注:用A来表示MainActivity,用B来表示Main2Activity

1)如果执行A---->B---->B--->A的操作,

这时standard和singleTop对应的任务栈中的结果分别是:

2)如果执行A------>B-------->A------>B操作的话,

singleTask和singleInstance分别对应的任务栈的情况如下:

(Android review) 任务栈与启动模式

时间: 2024-07-31 05:01:34

(Android review) 任务栈与启动模式的相关文章

(转)Android学习笔记 --- android任务栈和启动模式

1.一个应用程序一般都是由多个activity组成的,任务栈(task stack),记录和存放用户开启的activity. 2.当一个应用程序被打开时,系统就会给他分配拟一个任务栈,当任务栈中所有的activity都退出的时候,任务栈就清空了.任务栈中的id是一个integer的数据类型(自增长的). 3.在android操作系统里面会存在多个任务栈,一个应用程序对应一个任务栈. 4.默认情况下,关闭掉一个应用程序,系统就会清空了这个应用程序.但是应用程序的进程还会被保留 为什么要引入任务栈的

Activity-任务栈和启动模式

为什么需要了解关于Activity的任务栈,其实最直接的体现就是提高用户交互友好性. 举个例子,当我们去浏览一个新闻客户端的时候,我们进入了新闻详情页,在这个页面有相隔两条的新闻标题,当我们去点击这个标题的时候进入了新的新闻详情页时,如果我们不加以控制会导致什么现象?它会创建出n个新闻详细页的Activity实例,导致用户在退出的时候需要推出多个新闻详情activity,这点在用户体验上是非常不好的,当然对于我们自身的程序也是非常不好的,不断的去创建新的Activity必定会消耗一定的内存,久而

Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags();singleTask的两种启动方式。

Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags(); 一.Android Activity 四种启动模式 lunchMode 在Manifest 配置文件中的属性如下: (1) android:launchMode="standard" (2)android:launchMode="singleTop" (3)android:launchMode="singleTask" (4)andro

android学习笔记 activity生命周期&amp;任务栈&amp;activity启动模式

activity生命周期 完整生命周期 oncreate->onstart->onresume->onpause->onstop->ondestory 使用场景:应用程序退出自动保存数据 ondestory oncreate 可视生命周期 onstart->onresume->onpause->onstop 使用场景:应用程序最小化 暂停的操作 onstop onstart 前台生命周期 onresume->onpause 界面用户仍然可见,但是失去焦

Android Activity:四种启动模式,Intent Flags和任务栈(转自他人博客)

在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.那各个页面跳转关系如何决定呢?如果启动了顺序启动了ABCD的Activiy,如何从D调回到B呢?下面讲述一下Acitivity的四种启动模式.讲解启动模式之前,有必要先讲解一下“任务栈”的概念; 任务栈 每个应用都有至少一个任务栈,是用来存放Activity的,功能类似于函数调用的栈,先后顺序代表了Activity的出现顺序:比如Activity1-->Activity2-->Act

android 任务栈及启动模式

1.一个应用程序一般都是由多个activity组成的. 2.任务栈(task stack)(别名back stack后退栈) 记录存放用户开启的activity的. 3.一个应用程序一被开启系统就给他分配一个任务栈,当所有的activity都退出的时候,任务栈就清空了. 4.任务栈的id是一个integer的数据类型 自增长的. 5.在android操作系统里面会存在多个任务栈,一个应用程序一个任务栈. 6.桌面应用和一般的应用程序是一样的,任务栈的行为也是一样. 7.默认情况下, 关闭掉一个应

Android中Activity的四大启动模式实验简述

作为Android四大组件之一,Activity可以说是最基本也是最常见的组件,它提供了一个显示界面,从而实现与用户的交互,作为初学者,必须熟练掌握.今天我们就来通过实验演示,来帮助大家理解Activity的四大启动模式. 演示效果如下: 第一步:实验前准备,相关配置文件以及Activity的建立 (1)AndroidMainfest.xml配置文件 1 <?xml version="1.0" encoding="utf-8"?> 2 <manif

Android:图解四种启动模式 及 实际应用场景解说

在一个项目中会包括着多个Activity,系统中使用任务栈来存储创建的Activity实例,任务栈是一种"后进先出"的栈结构.举个栗子,若我们多次启动同一个Activity.系统会创建多个实例依次放入任务栈中.当按back键返回时,每按一次,一个Activity出栈,直到栈空为止.当栈中无不论什么Activity.系统就会回收此任务栈. 上面这个样例中的Activity并没有设置启动模式,你会发现多次启动同一个Activity.而系统却创建了多个实例,白白浪费内存,这样的情况Andro

Android Activity的4种启动模式详解(示例)

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5233269.html 先介绍下Android对Activity的管理,Android采用Task来管理多个Activity,当我们启动一个应用时,Android就会为之创建一个Task,然后启动这个应用的入口Activity(即<intent-filter.../>中配置为 MAIN和LAUNCHER的Activity). 因为Android并没有为Task提供API,因此我们无法真正去访问Task,只