Activity 启动模式(Activity Launch Mode)

今天练习了一下启动模式:

对其理解又深了一步,继续加油!

首先Activity Launch Mode有四种:
standard:默认(栈里可有多个相同的实例,要多少有多少)
singleTop:栈顶(栈里可有多个相同的实例,但若是栈里的顶部,再打开不会生成新的,只打开栈顶的那个)
singleTask:独立任务(全局单一实例,栈内唯一,但可以和standard和singleTop共享栈,即使Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)也会跳到已经创建好的那个Activity)
singleInstance:独立栈实例(全局单一实例,一个App内只允许存在一个,且独享一个栈)

我们可以在清单文件(AndroidManifest.xml)中修改Activity的启动模式,方法如下




下面简单讲解下:

首先要了解Activity栈:

Activity 启动模式(Activity Launch Mode)_第1张图片
a1.png

1.Standard模式

Activity 启动模式(Activity Launch Mode)_第2张图片
a2.png

如果我们的Activity全都是默认的Standard,点击跳转一个Activity(如果不finish()这个Activity)栈里面就多一个Activity,当用户按返回想退出,那就得一层一层的退

2.SingleTop栈顶模式

Activity 启动模式(Activity Launch Mode)_第3张图片
a3.png

3.SingleTask

Activity 启动模式(Activity Launch Mode)_第4张图片
a4.png

4.SingleInstance

Activity 启动模式(Activity Launch Mode)_第5张图片
a5.png

最后

代码已经分享到GitHub,需要的朋友可下载运行看看,可以看log,可以点击显示到TextView。

demo.gif

你可能感兴趣的:(Activity 启动模式(Activity Launch Mode))