Activity的四种加载方式

配置activity时可指定android:launchMode属性,该属性用于配置改Activity的启动模式。该属性支持如下4个属性值。android

standard:标准模式,默认的加载模式spa

singleTop:Task栈顶单例模式it

singleTask:Task内单例模式配置

singleInstance:全局单例模式activity

Android采用Task来管理多个Activity,当咱们启动一个应用时,Android会为之建立一个Task,而后启动这个应用的入口Activity(即intent-filter中配置MAIN和LAUNCHER的Activity)。filter

1、standard模式vi

每次经过这种模式启动Activity时,Android总会为目标建立一个新的实例,并将该Activity添加到当前Task栈中,这汇总模式不会启动新的Task,新的Activity将会被添加到缘由有的Task中。单例模式

二、singleTop模式单例

这中模式和standard有点类似,但有一点不一样:当将要启动的Activity已经位于Task栈顶时,系统不会从新建立目标Activity实例,而是直接复用已有的Activy实例。实例

若是要将启动的目标Activy没有位于栈顶,此时系统会从新建立目标Activity实例,并将它加载到Task栈顶,此时与standard模式彻底相同。

三、singleTask模式

采用这种加载模式的Activity在同一个Task内只有一个实例,启动目标Activity时,可分为以下三种状况。

(1)、若是将要启动的目标Activity不存在,系统将会建立目标Activity实例,并将它加入到Task栈顶。

(2)、若是将要启动的Activity已经位于Task栈顶,此时与singleTop模式相同。

(3)、若是将要启动的Activity已经存在,但没有位于Task栈顶,系统会把位于该Activity上面全部的Activy移出Task栈,从而使目标Activity转入栈顶。

四、singleInstance模式

系统保证不管哪一个Task中启动目标Activity,只会建立一个目标Activity实例,并会使用一个全新的Task栈来加载该Activity实例。

相关文章
相关标签/搜索