2015-02-03 3 views
0

У меня есть деятельность под названием BaseActivity, где размещаются несколько фрагментов.Наличие общего объекта между активностью и фрагментом: изменения времени выполнения?

BaseActivity имеет открытое поле Object o доступ к которой осуществляется с помощью фрагментов, вызвав Object o = ((BaseActivity) getActivity()).o; Это инициализируется во фрагментах onCreate.

Это работает, но у меня проблемы с изменениями конфигурации времени выполнения. Кажется, что Фрагменты onCreate вызывается перед BaseActivitysonCreate, поэтому я не могу сохранить объект из Bundle i, сохраненный в onSaveInstanceState.

Есть ли способ убедиться, что acitivty может сохранить свой объект из сохраненного пакета до того, как Фрагмент попытается получить к нему доступ?

ответ

1

Попробуйте это ..

@Override 
public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    Object o = ((BaseActivity) getActivity()).o; 
} 

Это гарантирует, что OnCreate своей деятельности в завершило выполнение.

Смежные вопросы