Tsudzukeru
@Tsudzukeru

Почему fragmentmanager разрушается после изменения конфигурации?

Есть фрагмент, который крепится к Activuty следующим образом.

override fun onAttach(context: Context) {
        super.onAttach(context)
        try{
            activityContract = context as IActivity
        }catch (e:ClassCastException){
            throw ClassCastException(context.toString() + "Активити должна реализовывать интерфейс IActivityView")
        }
    }


IActivity - интерфейс, который реализует моя активити. В нем лежат методы управления элементом Progress Bar и метод создания ErrorDialogFragment.
По ссылке activityContract вызываю методы Activity. Они все работают, но после поворота экрана в одном методе который использует FragmentManager выбрасывается исключение:
illegalstateexception: fragmentmanager has been destroyed


Не понимаю почему это происходит... В методе onCreate() у Activity() fragmentManager инициализируется.
lateinit var fragmentManager:FragmentManager
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_search)
        fragmentManager = supportFragmentManager
}
  • Вопрос задан
  • 441 просмотр
Решения вопроса 1
Tsudzukeru
@Tsudzukeru Автор вопроса
Проблема возникала из-за того, что я не отвязывал фрагмент от Activity при изменении конфигурации экрана.
В методе фрагмента onDestroy() нужно обнулять ссылку на Activity.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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