Android launchMode

Android Activity 有四种启动模式:“standard” (默认),“singleTop”,“singleTask”,“singleInstance”.


这四种到底有什么区别呢?

下面假设有两个Activity A & B来描述以下启动模式的区别,程序逻辑就是A可以点击Button跳转到B,B可以点击Button跳转到A.

“standard” (默认):

如果执行以上的操作,栈中就会有无数个A/B,即A->B->A->B->A->B。


“singleTop”:(单栈顶部单例)

如果该Activity在栈顶部,就不会创建新的Activity,如果不在顶部就会,比如还是执行standard的操作,其结果一样为:A->B->A->B->A->B。

但是如果是用A启动B,再启动B,就只是(A->B)而不是默认情况下的(A->B->B)


“singleTask”:(单栈单例)

不管跳转,一个栈中只会有一个实例,以上操作结果为(A->B  or  B->A)


“singleInstance”(多栈)

当创建这个Activity会单独开启一个栈,比如A为正常模式,B为singleInstance模式,执行A-》B-》A的操作最后栈的结果为(A->A    B)

退栈的顺序为(B ->  A  ->  A)







你可能感兴趣的:(android,button)