在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。
Activity启动方式有四种,分别是:
standard
singleTop
singleTask
singleInstance
可以根据实际的需求为Activity设置对应的启动模式,从而可以避免创建大量重复的Activity等问题。
起作用的场合就是我们每次startActivity时~~~
standard
每次通过这种模式来启动目标activity时,android总会为目标activity创建一个新的实例,并将该activity添加到当前task栈中——这种模式不会启动新的task,新的activity添加到原有的task中。
singleTop
这种模式与standard模式基本相似,但有一点不同,当将要被启动的目标activity已经位于task栈顶的时,系统不会重新创建目标activity的实例,而是直接使用已有的activity实例。
singleTask
采用这种模式加载的activity在同一个task内只有一个实例,当系统采用singleTask模式启动目标activity时,可分为如下三种情况:
如果将要启动的目标activity不存在。系统会创建目标activity的实例,并将他加入task的栈顶。
如果将要启动的目标activity已经位于栈顶,与singletop情况类似。
如果将要启动的目标activity已经存在,但是不位于栈顶,则它之上的activity都出栈,从而是目标activity到达栈顶。
singleInstance
只有一个实例,单独在一个task中,自己对应一个回退栈。
感恩:
http://blog.csdn.net/shinay/article/details/7898492
http://www.cnblogs.com/fanchangfa/archive/2012/08/25/2657012.html
http://www.cnblogs.com/meizixiong/archive/2013/07/03/3170591.html