在Android中的Activity包含有四种启动模式,分别为standard、singleTop、singleTask与singleInstance他们之间彼此联系,有各有各的特点;
下面进行一下细致的了解:
1、standard
standard为标准启动模式,每次激活时都会创建一个新的Activity,并放入任务栈中,每次激活的新的Activity都位于上一个的顶部。当返回时,遵循后入先出的原则,逐级返回前一个激活的Activity中,直至返回到主界面
图示:
2.singleTop
如果在任务的栈顶正好存在该Activity的实例, 就重用该实例,否者就会创建新的实例并放入栈顶(即使栈中已
经存在该Activity实例,只要不在栈顶,都会创建实例)。
3、singleTask
如果一个Activity设置了该启动模式,那么一个任务栈中只能存在一个该Activity的实例。如果任务栈中存在该activity那么就不会创建新的activity,而是将这个已经存在的activity移至栈顶,并将位于该activity之上的别的activity销毁。并且singleTop一样,会执行该activity的onNewIntent()函数。
4.singleInstance
如果一个Activity启动模式为singlelnstance,当启动这个Activity时,会新建一个栈,然后这个栈里面只有这一个Activity,一旦该模式的Activity的实例存在于某个栈中,任何应用再激活改Activity时都会重用该栈中的实例,其效果相当于多个应用程序共享一个应用,不管谁激活该Activity都会进入同一个应用中。这跟浏览器的工作原理有些类似,多个程序访问浏览器时,如果浏览器没有打开,就打开浏览器,如果打开了,就直接在当前浏览器访问,但是始终只打开了一个浏览器。