种类
- standard
- singleTop
- singleTask
- singleInstance
activity task stack:任务栈,将用户进入过的activity以栈的形式存放
standard
该模式启动的activity会默认进入启动他的activity所属的任务栈中,如果启动者是非Activity类型的Content并没有任务栈,则需要为启动的activity创建一个任务栈(给intent设置flags)
singleTop
若被启动的activity的实例不在任务栈栈顶则在任务栈栈顶创建,若已经在栈顶就不会在创建了,activity生命周期不会被调用,但onNewIntent方法会被调用
singleTask
判断栈中是否存在该activity的实例,如果存在,则清除该实例之前所有实例让其成为栈顶实例,如果不存在,则创建该activity的实例并压入栈中
singleInstance
创建该activity实例之前先判断所有任务栈中是否存在该实例的任务栈,如果存在则将任务栈中原有的实例抛弃并调用onNewIntent方法,将该实例压入栈中,如果不存在该实例的任务栈,则创建一个任务栈将该实例压入栈中(确保该activity只有一个实例)