После обновления с помощью поддерживающей библиотеки Android 23.1.1
последним 25.1.0
поведение от popBackStack()
изменилось в нашем приложении.поведение popBackStack() отличается после обновления библиотеки поддержки с 23.1.1 до 25.1.0
Например, у меня есть три FragmentTransactions
на BackStack. Теперь в BackStack добавляется четвертое FragmentTrsansaction. FragmentTransactions, как это:
FragmentTransaction transaction = fragmentManager.beginTransaction()
.replace(R.id.fragment_container_single, target, CoreActivity.FRAGMENT_TAG_LEFT)
.addToBackStack(<CONCRETE_TRANSACTION_NAME>)
.commit();
Фрагмент # 4 имеет логику, где он перенаправляет фрагмент # 5 во время onViewCreated()
автоматически (я знаю, что это некрасиво, и я должен изменить это). В любом случае, когда я хочу оставить фрагмент № 5, я хочу вернуться к фрагменту, который был показан до фрагмента №4. Я делаю это имя транзакции:
getFragmentManager().popBackStack(“<CONCRETE_TRANSACTION_NAME_4>”, FragmentManager.POP_BACK_STACK_INCLUSIVE);
или это:
getFragmentManager().popBackStack(“<CONCRETE_TRANSACTION_NAME_3>”, 0);
Но с этим призывом onCreateView()
и onViewCreated()
фрагмента № 4 будет называться и Fragment # 5 будет немедленно добавлен в BackStack , Даже если я вернусь к фрагменту №1 onViewCreated()
вызывается для каждого фрагмента на BackStack - для фрагмента № 2, фрагмента № 3 и фрагмента №4, даже если они не имеют значения для FragmentTransaction, к которому я хочу вернуться.
В библиотеке поддержки 23.1.1
Я успешно прыгаю в Фрагмент # 3. Фрагмент №4 включается без вызова onViewCreated()
. Это казалось более интуитивным и правильным для меня, потому что вызов onViewCreated()
для фрагментов «снаружи» моего FragmentTransaction кажется ненужным?
Я знаю, addToBackStack()
сохраняет только транзакционные состояния, а не сами фрагменты, а фрагменты, возможно, нужно воссоздать.
С этим связано posts, но я хочу понять, почему он ломается после обновления библиотеки поддержки. Я ничего не могу найти. Был ли это ошибкой или теперь это ошибка?
Я собираюсь изменить свой код.
Спасибо за помощь!
ОБНОВЛЕНИЕ У меня есть проблемы с жизненным циклом/изменения после обновления до поддержки-библиотеки 25.1.0. Существует Google issue, где я дополнительно прокомментировал свои проблемы. В настоящее время мне пришлось вернуться к последнему 24.2.1 и следить за этой темой. Это только мое временное решение. Эти проблемы начинаются с support-library 25.0.0.
У меня проблемы с обратной кнопкой в этой версии. Интересно, связано ли это с этой проблемой жизненного цикла. Экземпляр активности снова создается. –
Я проверил это. Когда я вернусь, моя деятельность не воссоздана. Он приостановлен и возобновлен, как и ожидалось между действиями. Но по спине очерки обломков изменились по порядку. Кажется, это не связано с новой версией библиотеки. Может быть, ваша деятельность воссоздана Android из-за низкой памяти? –
Когда я пользуюсь поддержкой 25.x, у меня есть сбой после использования кнопки возврата. Когда я вернусь к 24.x, он работает хорошо. Несколько устройств. Когда у меня есть какое-то время, мне нужно отменить минимально жизнеспособный тест. –