在mainfest文件中,activity标签有一个属性launchMode,它确定了当前Activity在Task栈中的运行模式,共分为四种模式:
* standard
如果在Activity标签中没有指明运行模式的话,系统会默认采用此种方式运行。
系统按照Intent的定义创建新的Activity实例并置入Task栈中。这个Activity可以被实例化多次,每一个实例可以放入不同的Task栈,同一个Task栈也可以包含多个Activity实例。
* singleTop
如果在当前Task栈的栈顶已经包含了这个Activity的实例,系统会将Intent信息通过onNewIntent()方法传入当前已经实例化的Activity中,而不是创建一个新的Activity实例。这个Activity可以被实例化多次,每一个实例也可以放入不同的Task栈,同一个Task栈也可以包含多个实例
(这必须满足一个条件,在Task栈的栈顶不存在一个Activity实例)。
举个例子,假设一个Task栈中包含根Activity A、Activity B、C以及位于栈顶的Activity D