我有一个片段,可以在其布局内切换片段。我使用ChildFragmentManager。替换片段的代码是:
FragmentManager fm = getChildFragmentManager();
FragmentTransaction fragmentTransaction = fm.beginTransaction();
Fragment oldFragment = fm.findFragmentByTag(TEST_ITEM_FRAGMENT_TAG);
if (oldFragment != null) {
fragmentTransaction.remove(oldFragment);
}
fragment = createNewFragment();
fragmentTransaction.replace(R.id.container, fragment, TEST_ITEM_FRAGMENT_TAG);
fragmentTransaction.commitNow();
显示的片段非常昂贵-它们包含位图。 我认为,该事务将从FragmentManager中删除任何以前的fragment实例,而该fragment实例所占用的内存将被释放。不幸的是,我在调试器中看到的是内存的即时增长。另外,FragmentManager.mActive列表包含所有已添加的片段-它们将保留而不是释放。 片段不会保留-我没有设置此标志。
有人知道这个问题可能是什么吗?