Activity的启动模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activity的启动模式相关的知识,希望对你有一定的参考价值。

Activity的四种启动模式:
androidManifest.xml中给Activity进行配置,配置代码:
 
android:launchMode=""
四种模式:Standard、singleTop、SingleTask、singleInstance
 
模式一
 
standard模式:没有在AndroidManifest.xml文件中配置,或者配置为android:launchModel="standard"。
当启动一个Activity activity的时候,不管Activity栈中是否已经有此activity的实例,都会创建一个新的activity的实例
并置Activity栈的栈顶。
 
模式二
 
singleTop模式:在AndroidManifest.xml中配置为android:launchModel="singleTop"。
当启动一个Activity activity的时候,如果Activity栈的栈顶是activity的实例,那么系统将不创建新的activity实例,
而是沿用栈顶的activity实例,并且会执行activity中的onNewIntent方法。
 
如果Activity栈顶不是activity的实例,则和standard模式处理方式一样。
 
模式三
 
singleTask模式:在AndroidManifest.xml中配置android:launchMode="singleTask"。
 
当启动一个Activity activity的时候,如果Activity栈中,不管是栈顶还是栈的其它位置,只要含有activity的实例,
系统则不会创建新的activity实例,而是把activity实例提置栈顶,activity实例之上的其他Activity实例被移除栈,
即销毁他们。并且会执行activity的onNewIntent方法。
 
如果Activity栈中不包含activity实例,则和standard模式处理方式一样。
 
模式四
 
singleInstance模式:在AndroidManifest.xml中配置为android:launchMode="singleInstance"。
 
当启动一个Activity activity的时候,系统先查询所有其他的Activity栈中是否包含activity实例,如果包含
则不创建,直接使用现有的activity实例,并且调用onNewIntent方法。如果不存在,则会创建一个activity
实例,并且把新创建的activity实例置一个新的栈中,新栈理论上只会有activtiy这一个Activity。Activity的启动模式

以上是关于Activity的启动模式的主要内容,如果未能解决你的问题,请参考以下文章

Android:四种启动模式

android 怎么设置activity的启动模式

Activity启动模式

Activity的启动模式

activity启动模式

Activity的四种启动模式