今天笔试遇到这个题目,虽然之前看过。但还是记错了。。所以重新梳理一下:
分别是standard,singleTop,singleTask,singleInstance.
利用Activity A,B,C来说明,存放Activity的回退栈有s1,s2。
首先要知道,每个新的Activity被创建时,都会被压入当前Application的栈顶。
standard:每次都会实例化一个Activity对象,如A->B,再new A,就会变成A->B->A。
singleTop:若Activity正在栈顶,则直接使用,否则与standard一样。
singleTask:1.实例化当前回退栈内的Activity,若Activity未创建,则创建(在栈顶)。或已创建,则移至栈顶,并将该Activity之上的Activity全部移出回退栈。
2.实例化其他应用(回退栈)内的Activity,若Activity未创建,则创建(在栈顶)。或已创建,则移至栈顶,并将该Activity之上的Activity全部移出回退栈。
同时将该应用显示至前台。
singleInstance:同singleTask,但是每一个回退栈内只能有一个Activity