@lacredin
Программист

Почему не вызывается onSaveInstanceState при смене фрагмента?

Вот так меняю фрагмент
ProjectPage frag1;//ссылка на фрагмент
                FragmentTransaction fTrans;//ссылка на транзакции
                frag1 = new ProjectPage();//создание объекта фрагмента
                fTrans = getActivity().getSupportFragmentManager().beginTransaction();
                Bundle args = new Bundle();
                save_state_bundle(args);
                frag1.setArguments(args);
                fTrans.replace(R.id.main_layout, frag1);
                fTrans.addToBackStack(null);
                fTrans.commit();


Но при этом не вызывается метод onSaveInstanceState. Однако при возвращении к фрагменту, заполненные EditText, сохраняют своё состояние.

Так же жизненный цикл фрагмента доходит до onDestroyView. Но не вызывает onDestroy и onDetach.
А при возвращении вызываются onCreateView, onStart, onResume.

Как я понял, сам фрагмент не уничтожается, а уничтожается только его view, но тогда почему его состояние частично восстанавливается, если метод onSaveInstanceState не был вызван?
И ещё, как я понял из документации, при нехватки памяти и сам фрагмент может быть удалён, даже без вызова onDestroy и onDetach, где тогда хранить состояние фрагмента?
  • Вопрос задан
  • 245 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы