您的位置:首页 > 移动开发 > Android开发

Android中Activity启动的四种模式

2014-02-19 16:15 501 查看
Android中的Activity有四种启动模式:1、standard,2、singleTop,3、singleTask,4、singleInstance

设置启动模式的位置是在AndroidManifest.xml文件中activity元素的android:launchMode属性。例如:

<activity android:name=".Activity01"
android:launchMode="singleTask">
</activity>
下面来说一下四种模式的用途和区别:
一、standard模式,也就是默认模式,不需要配置launchMode。每次点击跳转键时,就会产生新的实例。点击Android设备的回退键,可以看到是按照刚才创建Activity实例的倒序依次出现的,类似退栈操作,刚才操作跳转按钮的过程是压栈操作。

二、singleTop模式,
singleTop和standard模式,都会将intent发送新的实例(后两种模式不发送到新的实例,如果已经有了的话)。不 过,singleTop要求如果创建intent的时候栈顶已经有要创建的Activity的实例,则将intent发送给该实例,而不发送给新的实例。还是用刚才的示例,只需将Activity的launchMode改为singleTop,就能看到区别。运行的时候会发现,按多少遍按钮,都是相同的Activity实例,因为该实例在栈顶,因此不会创建新的实例。singleTop模式,可用来解决栈顶多个重复相同的Activity的问题。如果栈顶不是当时需要的Activity,此时就和standard的效果相同了。
三、singleTask模式
singleTask模式和后面的singleInstance模式都是只创建一个实例的。当intent到来,需要创建singleTask模式的Activity的时候,系统会检查栈里面是否已经有该Activity的实例。如果有则直接将intent发送给它,此时原来在此Activity栈中上面的Activity将会被杀死。例如:main-->Activity1-->Activity2-->Activity1,main到Activity1,Activity1到Activity2时,其前面的Activity1会被杀死,Activity2再跳转回Activity1时,Activity2会被杀死,此时栈中只有两个活动:main和Activity1。在Activity1点返回直接退回到main,然后退出。
四、singleInstance模式
(未完待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: