也许是我的英文理解能力问题,Google关于launchMode的描述总是让我困惑,所以我就分别测试了这几种模式,按照我的理解重新整理一下文字
A – standard:默认模式,总是创建新的A实例,同一个任务可以有多个A的实例
<p<i
mg class=”aligncenter” referrerPolicy=”no-referrer” src=”https://i01piccdn.sogoucdn.com/e0341605d5ccd55c” alt=”android基础总结篇之二 Activity的四种launchMode”>
>Task堆栈:A1->A2->A3->A4
B – singleTop:类似于standard,不过,当堆栈顶部是B的实例时,不会创建新的B实例(A1创建B1, 这时B1可以创建A2,但不能创建B的新实例,A2可以创建新的B实例)
Task堆栈:A1->B1->A2->B2
C – singleTask:B1在新的task创建C的实例,C可以在自己的task中创建B2和A2,A2启动C时,不会创建新的C实例,而是直接转到C的当前实例,并且,C返回时,直接返回启动C的B1,而不是转入C之前的A2
Task堆栈:A1->B1
\
C->B2->A2
D – singleInstance:类似于singleTask,但新的task只能有D一个实例,D启动的B2会在原来的task创建。B2无法返回D,而是返回到B1,A1退出后,可以看到D还在。
Task堆栈:A1-B1 B2->A2
\ /
D
本文从互联网转载,来源地址:www.downzz.com/shell/18088.html,原作者保留一切权利,若侵权或引用不当,请联系九八云(cmy.cn)删除。【九八云,优质云服务器提供商】