Android:Activity的启动模式(LaunchMode)

来源:互联网 发布:fastjson解析复杂json 编辑:程序博客网 时间:2024/04/28 16:05

标准模式(standard):默认的模式,每次启动一个Activity都会重新创建一个新的实例,不管这个实例是否已经存在。一个任务栈中可以有多个实例,每个实例也可以属于不同的任务栈。在这种模式下,谁启动了这个Activity,这个Activity就运行在启动它的那个任务栈中。


栈顶复用模式(singleTop):如果新Activity的实例已经位于任务栈的栈顶,那么此Activity不会被重新创建,同时它的onNewIntent方法会被调用,我们可以通过此方法的参数来获取当前请求的信息。如果新的Activity的实例已经存在但不是位于栈顶,那么新的Activity仍然会被创建。


栈内复用模式(singleTask):单实例模式,只要任务栈中存在该Activity的实例,那么多次启动此Activity都不会重新创建实例,同时它的onNewIntent方法会被调用。比如,当你要启动一个具有singleTask模式的Activity时,系统会首先去寻找是否存在该Activity想要的任务栈,如果不存在,旧重新创建这个任务栈,然后把该Activity实例放在该栈中。如果存在该Activity所需的任务栈,如果该栈中存在该Activity的实例,那么系统会将该Activity调到栈顶并调用它的onNewIntent方法,如果实例不存在,就创建该Activity的实例并压入栈中。


单实例模式(singleInstance):具有singleTask模式的所有特性外,还有一点,该Activity只能单独地位于一个任务栈中。系统会为该Activity创建一个新的任务栈,该Activity实例就会单独地位于该栈中。后续的请求均不会创建新的Activity实例,除非这个任务栈已经被销毁。

0 0
原创粉丝点击