android启动模式详解

1.standard
2.singleTop
3.singleTask
4.singleInstance

FLAG:
1.Intent.FLAG_ACTIVITY_NEW_TASK
设置此状态,记住以下原则,首先会查找是否存在和被启动的Activity具有相同的亲和性的任务栈(即taskAffinity,注意同一个应用程序中的activity的亲和性一样,所以下面的a情况会在同一个栈中,前面这句话有点拗口,请多读几遍),如果有,刚直接把这个栈整体移动到前台,并保持栈中的状态不变,即栈中的activity顺序不变,如果没有,则新建一个栈来存放被启动的activity。
*开启一个activity的时候会查找同一个应用的栈,如果存在同一应用的栈,并且栈里不存在这个activity的话会把这个activity新建放到栈顶,如果存在该activity则把该栈推到前台不创建新activity,不管该activity是否在栈顶;如果没有同一应用的栈的话会新建一个栈把该activity放进去。

2.Intent.FLAG_ACTIVITY_SINGLE_TOP
与加载模式singleTop功能相同
3.Intent.FLAG_ACTIVITY_CLEAR_TOP
销毁目标Activity和它之上的所有Activity,重新创建目标Activity ,如果不想重新创建Activity,则再加个Intent.FLAG_ACTIVITY_SINGLE_TOP结合使用,这样目标Activity已经存在会被推到栈顶,不再重新创建新实例。
如下使用:setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
4.Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
如果这个activity已经启动,就不产生新的activity,会把这个activity实例加到栈顶。

你可能感兴趣的:(android启动模式详解)