栈顶Activity是当前正在显示的。
以A、B举例
1.standard
不同的Activity都存放在同一个栈中,每次创建实例都会堆放到栈顶,逐次返回直至退出。
创建实例B
创建实例A
点击返回时,从栈顶依次销毁,直至栈空返回桌面。
2.singleTop
同样是不同的Activity存放在同一个栈,
1)若A在栈顶,想创建一个新的实例A则不会成功
2)若A不在栈顶,再创建一个新的实例A,在栈顶会产生一个新的实例A
创建实例A
点击返回时,从栈顶依次销毁,直至栈空返回桌面。
3.singleTask
不同的Activity存放在同一个栈,
1)若A在栈顶,再创建一个新实例A不会成功
2)若A不在栈顶,创建一个实例A则会回到原来的栈中存在的实例A,A成为栈顶,A之上的实例全部移除。
创建实例A
B与C移除。
点击返回时,从栈顶依次销毁,直至栈空返回桌面。
4.singleInstance
不同的栈存在不同的栈中。
1)若A在栈顶,创建一个新的实例A不会成功。
2)若B仍未被创建,则新创建的实例B会存放在一个新的栈中。
创建实例B
3) 如果此时B的实例已存在且我们在B的页面中创建新的A实例时,不会创建新的A实例,
页面跳转到原来任务栈中存在的A的实例,存放B实例的任务栈仍然存在
点击返回,依次销毁任务栈,直至返回桌面。