У меня есть фрагмент, который переключает фрагменты внутри своего макета.Я использую 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, и память, занятая экземпляром фрагмента, будет освобождена.К сожалению, в отладчике я вижу мгновенный прирост памяти.Кроме того, список FragmentManager.mActive содержит все добавленные фрагменты - они сохраняются, а не освобождаются.Фрагменты не сохраняются - я не устанавливаю этот флаг.
Увеличение памяти во время фрагмента Активность выглядит следующим образом:
Есть у кого-нибудьесть идеи, в чем может быть проблема?