我將Android應用程序移植到蜂窩上,為了使用片段,我做了很大的重構。在以前的版本中,當我按下“主頁”按鈕時,我通常會執行一次操作ACTIVITY_CLEAR_TOP以重置后退堆?!,F在我的應用只是一個帶有多個片段的Activity,因此當我按下Home按鈕時,我只是替換了其中的一個片段。如何不用startActivity與ACTIVITY_CLEAR_TOP標志一起使用就清除我的后堆棧?
3 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
為@Warpzit的評論提供答案,并使其他人更容易找到。
采用:
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

莫回無
TA貢獻1865條經驗 獲得超7個贊
充分尊重所有有關方面;看到你們中有多少人可以用一個簡單的方法清除整個碎片堆,我感到非常驚訝
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
根據Android文檔(關于name論點-所主張的工作建議中的“空”)。
如果為null,則僅彈出最高狀態
現在,我的確意識到我不了解您的特定實現(例如,在給定的時間點,您在后臺堆棧中有多少個條目),但是當期望得到一個明確定義的答案時,我會全力以赴在更廣泛的設備和供應商中的行為:
(供參考,與此同時)
FragmentManager fm = getFragmentManager(); // or 'getSupportFragmentManager();'
int count = fm.getBackStackEntryCount();
for(int i = 0; i < count; ++i) {
fm.popBackStack();
}
- 3 回答
- 0 關注
- 412 瀏覽
添加回答
舉報
0/150
提交
取消