Activity的四种加载模式:standard, singleTop, singleTask, singleInstance。
配置方法:在Androidmanifest.xml文件中,配置Activity的launchMode属性。
<activity android:name=".FileExplorerActivity" android:label="@string/file_app" android:launchMode="standard"> </activity> |
模式介绍:
1、 standard:系统的默认模式,一次跳转就会生成一个新的实例。
2、 singleTop:跟standard模式类似,唯一区别就是,当跳转目标对象是位于栈顶的Activity时,程序不会生成新的实例,而是直接跳转到栈顶的那个Activity。
3、 singleTask:singleTask和singleInstance模式都是只会创建一个实例。当需要创建singleTask模式的Activity时,系统会检查栈中是否已经有该Activity得实例,如果有,则直接使用,没有则创建新的实例。
4、 singleInstance:这个模式有点复杂,很少用到。设置为singleInstance模式的Activity,会独占一个task(可以理解为进程或者Activity堆栈),有自己的上下文环境。
例如:有三个Activity:Ac1,Ac2,Ac3;将Ac2设置为singleInstance模式,在Ac1中调用Ac2,在Ac2中调用Ac3,然后在Ac3中按返回键,会直接回到Ac1。因为Ac1和Ac3在同一个堆栈(task)中,而Ac2在自己的堆栈(task)中。