Мне трудно понять, как жизненный цикл фрагмента связан с переключением между фрагментами в заднем стеке. Пожалуйста, потерпите меня, если мой вопрос выявляет более одного заблуждения.
Вот мой код:
public class SomeFragment extends Fragment {
private SomeCustomView customView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.some_fragment, container, false);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Create the child view
customView = (SomeCustomView) getView().findViewById(R.id.some_fragment_child_view);
customView.initializeMyCustomView();
}
}
Как видите, мой фрагмент имеет дочерний вид. Дочерний вид является настраиваемым. Вот код:
public class SomeCustomView extends SurfaceView implements SurfaceHolder.Callback {
private boolean aVariableWhichMustPersistForLifetimeOfApplication;
}
Всякий раз, когда этот фрагмент добавляется в задний стек, а затем восстанавливается, переменная customView
создается заново, и поэтому я теряю значение aVariableWhichMustPersistForLifetimeOfApplication
. Это создает мне всевозможные проблемы.
Приложение запустилось с использованием Activity
, которое отображало только SomeCustomView
и не было никаких фрагментов. Теперь мне нужно добавить функциональность, поэтому я превратил пользовательское представление в фрагмент и, таким образом, пришел к этой проблеме.