Intent.FLAG_ACTIVITY_NEW_TASK如果将intent设置这一项就会从历史队列中独立出来,生成一个新的activity的队列。FLAG_ACTIVITY_CLEAR_TOP就会将新站第一个activity在原来队列中位于他上面的activity都清空。例如有四个activity A B C D,他们中都有一个按钮,按a的按钮会跳到b,b->c,c->d,d->b,如果activity d中的intent设置了以上两个属性
Intent intent=new Intent(getApplicationContext(), ActivityB.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);则当跳转到b后b上面的c d两个activity的给clear了,且生成了一个新的队列,该栈以b为开始,a本来就在b下面没清空与b一同处于新队列中,此时按返回按钮会跳转到a,再次按返回就会退出程序。如果没设这两个属性,则到了b后按返回按钮后不会跳转到a因为此时栈中,b处于栈顶,其次是d-->c-->b-->a,按照这个顺序先到d再到c再到b再到a,会出现非常奇怪且复杂的层次结构。以上均为个人理解,错误在所难免,如有不对欢迎拍砖辞教。