根據debug信息查看Fragment回退棧的情況,具體debug代碼如下:
int num = getActivity().getSupportFragmentManager().getBackStackEntryCount(); String numString = "++++++++++++++++++++++++++++++++++Fragment回退棧數量:"+num; TALogger.d("Fragment", numString); for (int i = 0; i < num; i++) { BackStackEntry backstatck = getActivity().getSupportFragmentManager().getBackStackEntryAt(i); TALogger.d("Fragment", backstatck.getName()); }
debug結果截圖如下:
最后一步是調用:
getActivity().getSupportFragmentManager().popBackStackImmediate(CreateGroupNameFragment.class.getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
即彈出Tag為CreateGroupNameFragment之上的所有(包括自身)的Fragment。
popBackStackImmediate(name,flag);
第二個參數:只能是 0 或者 1(POP_BACK_STACK_INCLUSIVE);
第一個參數為null時,第二個參數為0時:
會彈出回退棧中最上層的那一個fragment。
因為經測試,回退棧中的fragment個數減少了一個。
第二個參數為1時:
會彈出所有回退棧中的fragment。
因為經測試,回退棧中的fragment個數變為0了。