這是該方案銷燬所有以前的活動後,具體活動是開放
Activity A
- >Activity B
- >Activity C
- >Activity D
(我想破壞活動A,B和C Activity D
啓動後
任何想法請
這是該方案銷燬所有以前的活動後,具體活動是開放
Activity A
- >Activity B
- >Activity C
- >Activity D
(我想破壞活動A,B和C Activity D
啓動後
任何想法請
Intent intent = new Intent(ActivityC.this, ActivityD.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
ActivityC.this.finish();
FLAG_ACTIVITY_NEW_TASK
如果設置,這個活動將成爲一個新任務的開始在這個 歷史堆棧上。任務(從開始它到下一個 任務活動的活動)定義用戶可以移動到的活動的原子組。任務可以移動到前臺和後臺;所有 特定任務內部的活動始終保持相同的 順序。有關任務的更多信息,請參閱任務和返回堆棧。
這個標誌是普遍使用的是要呈現 「發射」式的行爲活動:它們給用戶的單獨 事情是可以做的,否則運行完全獨立 活動推出它們的列表。
使用此標誌時,如果任務已在運行 您現在正在啓動,則不會啓動新的活動; 取而代之的是,當前任務將被簡單地置於 屏幕的前端並顯示其狀態。請參閱FLAG_ACTIVITY_MULTIPLE_TASK 以獲取禁用此行爲的標誌。
當調用者請求從 開始的活動的結果時,不能使用此標誌。
FLAG_ACTIVITY_CLEAR_TASK
如果傳遞給Context.startActivity()的意圖設置,這個標誌將 導致將與該活動相關聯,以 活動前被清除任何現有任務開始。也就是說,活動 成爲其他空任務的新根,並且任何舊的活動都已完成。這隻能與 FLAG_ACTIVITY_NEW_TASK結合使用。
你需要傳遞標誌Intent.FLAG_ACTIVITY_CLEAR_TOP
與Intent
:
Intent intent = new Intent(getApplicationContext(), D.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
當我已經在活動C我調用了代碼'Intent intent = new Intent(getApplicationContext(),D.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);'但是當我點擊後退按鈕。我仍然回到'活動C'。謝謝你的回答,雖然 – JayVDiyk
是的你可以去活動C,但你的活動A,B將完成 – Pitty
使用:Activity_C activity = new Activity_C(); activity.finish();在你的Activity D OnCreate()方法中 – Pitty
使用這些線路以清除活動堆棧當活動C被推出:
Intent i = new Intent(PresentActivityName.this, D.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
finish();
Intent i = new Intent(FirstActivity.this,NextActivity.class); startActivity(i); //使用意向完成 FirstActivity.this.finish(); – impathuri