Android:Activity启动模式

来源:互联网 发布:https 443端口 编辑:程序博客网 时间:2024/06/12 01:20
在AndroidManifest.xml中配置:
<activity
    android:name=".MainActivity"
    android:launchMode="standard">

有以下四种:

standard:
默认模式,每次通过Intent启动Activity时都会创建一个新的Activity实例,并放入任务栈中。

singleTop:
每次通过Intent启动Activity时,如果栈顶存在该Activity的实例,就重用该实例(会调用实例的onNewIntent()),否侧就会创建新的实例并放入栈顶(非栈顶位置即使存在该实例也会创建新的实例)。

singleTask:
每次通过Intent启动Activity时,会查找栈中有无该Acitivty实例,有则移到栈顶重用,其他位于该实例上面的全部被移出栈,没有则创建新的并放入栈顶。

singleInstance:
第一次通过Intent启动Activity时,会创建一个新实例并放入新的栈中,以后无论调多少次都会重用该栈中的Activity实例(会调用实例的onNewIntent()),多个应用可以共享该实例。


Flags:

FLAG_ACTIVITY_NEW_TASK
要启动的activity将会在一个新的task中启动,如果已经有一个task在运行你要启动的activity,这是将不会启动新的activity,而是把这个拥有你要启动activity的task切换到前台,保持它最后操作是的状态。

FLAG_ACTIVITY_SINGLE_TOP::
类似于singleTop


FLAG_ACTIVITY_CLEAR_TOP:
类似singleTask


FLAG_ACTIVITY_NO_HISTORY:
无记录模式,用此模式启动的actiivty,在启动新actiivty后,此actiivty会退出。

FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS:
新启动的actiivty不添加到最近应用列表(AndroidManifest.xml中Activity的android:excludeFromRecents="true"属性等同效果)

0 0
原创粉丝点击