一、活动的启动模式
Android是使用返回栈来管理活动的,新建的活动实例会入栈,处于栈顶,点击返回键或finish()活动会销毁并且出栈此时前一个活动就处于栈顶,对用户可见。 活动的启动模式有4种,分别是
standard
singleTop
singleTask
singleInstance
(注意:调用StartActivity(intent)启动另一个活动不会销毁当前的活动,即当前活动不会执行onDestry(),当前活动仍然在返回栈中)
二、使用方法
在manifest.xml文件中设置
<activityandroid:name="ui.PostNewActivity"
android:launchMode="singleTop">
</activity>
三、4中启动模式的对比
| standard | singleTop | singleTask | singleInstand |
适用场景 | 默认的活动启动模式 | 频繁启动同一个活动。 | 保持某个活动的实例,两个活动间频繁切换 | 多个程序共享一个活动实例 |
性能 | 每次启动都会创建一个新的活动实例 | 在启动新活动时,发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会创建新的活动实例。 | 每次启动该活动时,系统都会在返回栈中检查是否存在该活动的实例。如果存在,就直接使用该实例,同时把位于该活动上方的活动通通出栈。如果没有就创建一个新的活动实例。 | 指定为singleInstance模式的活动会启用一个新的返回栈来管理这个活动,不管是哪个程序来访问这个活动都共享同一个返回栈,解决了多个程序共享一个活动实例的问题 |