Память сохранена фрагментом - PullRequest
4 голосов
/ 15 октября 2011

Когда я звоню popBackStack, как:

manager.popBackStack("mybackstack", FragmentManager.POP_BACK_STACK_INCLUSIVE);

Будет ли освобождена память, сохраненная фрагментами, которые принадлежат "mybackstack"?

У меня есть FragmentActivity, который управляет ListFragment. Каждый раз, когда я нажимаю на элемент, FragmentActivity создает новый Fragment, который показывает некоторую информацию о выбранном элементе, а затем показывает DialogFragment с растровым изображением (которое я перезагружаю, когда диалоговое окно закрывается). Я помещаю android:configChanges="orientation" в манифест и перезаписываю onConfigurationChanged при необходимости.

1 Ответ

1 голос
/ 07 мая 2012

Да, память, сохраненная фрагментами, будет освобождена. Из документации

public static final int POP_BACK_STACK_INCLUSIVE

Флаг для popBackStack (String, int) и popBackStack (int, int) : Если установлено, и имя или идентификатор заднего стека запись была предоставлена, тогда все соответствующие записи будут использованы пока тот, который не соответствует, не найден или дно стека достиг. В противном случае, все записи до, но не включая эту запись будут удалены.

и

public abstract void popBackStack (имя строки, int flags)

Вывести последний переход фрагмента из заднего стека фрагмента менеджера. Если всплыть нечего, возвращается false. Эта функция асинхронный - он ставит запрос на всплывающее окно, но действие будет не будет выполняться, пока приложение не вернется в цикл обработки событий.

Обратите внимание, однако, что нет гарантии, что эта память будет немедленно освобождена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...