Android 学习之Activity的启动模式

来源:互联网 发布:幼儿园软件有哪些 编辑:程序博客网 时间:2024/06/13 07:00

任务栈

每个应用都会任务栈,而任务栈是用来存放Activity的,功能类似于函数调用的栈,是先进后出的模式。

 

一、standard(默认的启动模式)

这种启动模式当激活一个Activity时,都会创建一个新的Activity实例,然后放入任务栈中,这种模式允许有多个相同的实例存在的,也允许多个相同Activity叠加。

 

二、singleTop

如果当前的Activity实例处于任务栈的栈顶,即某个Activity自己激活自己,那么就不需要再创建新的实例了,当前Activity实例不处于栈顶就都要创建新的Activity实例。这种模式允许有多个相同的实例存在的,但是不允许多个相同Activity叠加。

 

三、singleTask

如果我们要激活的那个Activity实例在任务栈中存在该Activity实例,那么就不需要再创建新的实例了,只需要把该Activity实例放在栈顶(将该activity实例以上的实例都出栈(pop))

 

四、singleInstance

在任务栈中只有一个activity实例,并且这个实例独立运行在一个任务栈中,不允许其他的activity存在

例如:

程序有三个ActivityD1,D2,D3,三个Activity可互相启动,其中D2singleInstance模式。那么程序从D1开始运行,假设D1taskId200,那么从D1启动D2时,D2会新启动一个task,即D2D1不在一个task中运行。假设D2taskId201,再从D2启动D3时,D3taskId200,也就是说它被压到了D1启动的任务栈中。

0 0
原创粉丝点击