您的位置:首页 > 其它

activity启动模式

2015-08-11 14:43 183 查看
"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的程序中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: