Почему фрагменты отрываются от их активности? - PullRequest
0 голосов
/ 30 декабря 2018

Как и многие другие, я борюсь с этой ошибкой:

java.lang.IllegalStateException: фрагмент xyz не присоединен к Деятельности

Этот вопрос предлагает несколько идей о том, как с этим бороться.Однако нет никаких объяснений вопроса, почему Фрагмент отрывается от своей Деятельности в первую очередь?Помогает ли понимание того, почему это происходит, спроектировать мое приложение таким образом, чтобы этого не происходило?

В случае, если у меня нет какой-либо асинхронной задачи, я вызываю getResources(), когда она завершается;Я называю getResources() в методе Фрагмента onCreate().И иногда, когда я довольно быстро перемещаюсь по своему приложению, появляются ошибки.Следует ли ожидать, что Фрагмент даже не обязательно будет привязан к своей Деятельности во время его собственного onCreate() метода?

Во-вторых, решения, представленные в связанном вопросе (защита getResources() с помощью isAdded() и getActivity() != null) не помогай мне.Не существует разумного способа справиться с недоступностью getResources().

1 Ответ

0 голосов
/ 30 декабря 2018

Поскольку Android предполагает, что действия могут быть уничтожены и воссозданы для изменения конфигурации.Фрагменты, напротив, не являются.

Следует ли ожидать, что Фрагмент даже не обязательно присоединяется к его Деятельности во время его собственного метода onCreate ()?

Да, это "ожидается".Плохой дизайн ИМО, но ожидаемый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...