activity启动模式

"standard"、 "singleTop"、"singleTask"、"singleInstance"
其中 standard 是默认值,四个值可以分成两类:
1)'standard'和'singleTop'允许某个Activity有多个实例,而且这些实例处于相同或不同的栈中。
2)'singleTask'和'singleInstance'指定某个Activity使用单例模式,而且这个实例会固定存在新栈中。
下面分别介绍四个值:
'standard',允许某Activity有多个实例,这些实例可以压入相同或者不同的栈中,这是大多数Activity通常的启动模式。


'singleTop',该模式也允许有多个Activity的实例,但是跟'standard'不同的是,如果栈顶已经有一个Acitivity的实例了,系统通过Inten引导到一个Activity,比如startActivity(Intent),此时不会创建新的实例,而是调用一个onNewIntent()方法(通常情况不会调用)。


‘singleTask’,总会创建一个栈,同时会把实例化的Activity(单例模式)压到栈中。如果任意一个栈已经有一个Acitivity的实例了,系统通过Inten引导到一个Acitivity的时候,同样不会创建新的实例,而是调用onNewIntent()方法。在这种模式下,不同的Activity实例可以被压到同一个栈中,如果用户从SingleTask模式的Activity中单击返回键,系统会返回到上一个Activity的实例中。这种模式作为多个Acitivity的入口是非常有用。


'singleInstance',该模式下,不会再有新的Acitvity实例压入到栈里面,其它地方和'singleTask'一样。这意味着,栈中只有唯一的一个Activity实例。这是一个非常特殊的模式,这只能用在只有唯一的一个Activity的程序中。
posted @ 2015-08-11 14:43  清澈见底  阅读(94)  评论(0编辑  收藏  举报