您的位置:首页 > 其它

Activity的启动模式

2016-03-24 19:00 357 查看
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的启动模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: