1.Activity启动模式简述
在启动一个新的Activity时,我们可以通过设置Activity的LaunchMode来指定Activity的启动模式。目前有四种启动模式:standard、singleTop、singleTask、singleInstance。
2.Activity栈(Stack)
系统管理Activity时是通过栈的形式管理,先进先出,类似手枪的子弹夹。压栈和弹栈概念以此类推。
3.任务Task
安卓中,每个应用都属于一个任务,也就是一个Task,每个Task有对应的Activity栈。
4.各启动模式详解
standard:标准模式,每次启动Activity时都会创建一个新的实例,压入栈顶。标准启动模式的Activity被启动后会被压入启动它的Activity的Task的栈中。
singleTop:栈顶复用模式,如果被启动的Activity是这种启动模式,被启动时如果已经在栈顶有实例,那么不会重新创建新的实例,而是复用。同事,onNewIntent会被调用。由于不是重新创建新的activity,所以,被这样启动的activity不会调用onCreate、onStart。
sigleTask:栈内复用模式,在这种启动模式下,如果被启动的Activity在任务栈内有实例,系统不会重新创建实例,而是将其移至栈顶,同时onNewIntent也会被调用。
singleInstance:单例模式,该启动模式比较特殊,这种启动模式的Activity在被启动时系统会为其单独创建一个Task并且独占一个任务栈。