1:SingleTop:如果位于栈顶,调用的时候不会生成新的activity,直接复用;
如果不位于栈顶,调用的时候生成新的activity;
场景:顶部生成notification的时候我们去点击这个通知,而这个通知跳转的就是我们当前所在的页面,用singleTop可以避免同样的页面多次打开;
2:SingleTask:如果栈里面存在该activity,调用的时候,activity上面的所有的activity全部移除,复用该activity。
场景:无论界面在哪个地方,当我们跳转到登录界面的时候,我们希望的是按返回键的时候,是退回到桌面的。这是用SingleTask,能保证
无论是从哪个页面跳转过来的,我们按返回键都能退回到桌面。
3:SingleInstance:当该activity设置为SingleInstance, 调用的时候,会另起一个栈单独存储该acitvity;
场景:我们的App需要调用另外一个应用的mActivity,如果是正常情况下,到这个mActivity界面之后,按返回键是不会返回到我们的应用的,应用
mActivity所在的栈还有他们应用自己的很多的activity,只能回退到他们自己mActvity的前面一个activity;
当我们应用SingleInstance的时候,调用mActivity会使mActivity另外单独存在于一个栈,这时候按返回键就会返回到我们的应用。