今天练习了一下启动模式:
对其理解又深了一步,继续加油!
首先Activity Launch Mode有四种:
standard:默认(栈里可有多个相同的实例,要多少有多少)
singleTop:栈顶(栈里可有多个相同的实例,但若是栈里的顶部,再打开不会生成新的,只打开栈顶的那个)
singleTask:独立任务(全局单一实例,栈内唯一,但可以和standard和singleTop共享栈,即使Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)也会跳到已经创建好的那个Activity)
singleInstance:独立栈实例(全局单一实例,一个App内只允许存在一个,且独享一个栈)
我们可以在清单文件(AndroidManifest.xml)中修改Activity的启动模式,方法如下
<activity
android:name=".B_SingleTopActivity"
android:launchMode="singleTop">
</activity>
下面简单讲解下:
首先要了解Activity栈:
1.Standard模式
如果我们的Activity全都是默认的Standard,点击跳转一个Activity(如果不finish()这个Activity)栈里面就多一个Activity,当用户按返回想退出,那就得一层一层的退
2.SingleTop栈顶模式
3.SingleTask
4.SingleInstance
最后
代码已经分享到GitHub,需要的朋友可下载运行看看,可以看log,可以点击显示到TextView。