Android

Activity 启动模式LaunchMode

2019-12-17  本文已影响0人  敏捷Studio

准备知识

启动模式的分类

标准模式:standard

栈顶复用模式:singleTop

栈内复用模式:singleTask

在复用的时候,首先会根据taskAffinity去找对应的任务栈:

单实例模式:singleInstance

该实例为系统唯一,不同的应用去打开这个activity 共享公用的同一个activity。他会运行在自己单独,独立的任务栈里面,并且任务栈里面只有他一个实例存在。启动该模式Activity的时候,会查找系统中是否存在:

LaunchMode Flag

Activity 的启动模式除了在 AndroidManifest 文件中设置以外,还可以通过 Intent的 Flag 来设置:

任务栈

任务栈Task,是一种用来放置Activity实例的容器,他是以栈的形式进行盛放,也就是所谓的先进后出,主要有2个基本操作:压栈和出栈,其所存放的Activity是不支持重新排序的,只能根据压栈和出栈操作更改Activity的顺序。

启动一个Application的时候,系统会为它默认创建一个对应的Task,用来放置根Activity。默认启动Activity会放在同一个Task中,新启动的Activity会被压入启动它的那个Activity的栈中,并且显示它。当用户按下回退键时,这个Activity就会被弹出栈,按下Home键回到桌面,再启动另一个应用,这时候之前那个Task就被移到后台,成为后台任务栈,而刚启动的那个Task就被调到前台,成为前台任务栈,Android系统显示的就是前台任务栈中的Top实例Activity。

上一篇下一篇

猜你喜欢

热点阅读