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設置了以上兩個屬性 spa
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,會出現很是奇怪且複雜的層次結構。以上均爲我的理解,錯誤在所不免,若有不對歡迎拍磚辭教。 get