Будет ли фрагмент уничтожен, если setRetainInstance (true) не вызывается? - PullRequest
2 голосов
/ 08 июня 2019

Я слежу за продвинутым обучением по разработке Android от Google.Вот ссылка .Я сталкивался с этим: Добавлен статический фрагмент в xml

И при повороте устройства состояние выбранного переключателя сохраняется, как показано здесь: альбомный режим

Как состояние фрагмента сохраняется без использования setRetainInstance (true)?Разве фрагмент не должен быть уничтожен вместе с методом onDestroy () действия?Если он сохраняется без явного вызова setRetainInstance (true), какой смысл использовать метод?Я запутался с этими двумя понятиями.Может кто-то пролить свет на это?

1 Ответ

2 голосов
/ 08 июня 2019

Как состояние фрагмента сохраняется без использования setRetainInstance (true)?

Очевидное изменяемое пользователем состояние виджетов обычно автоматически переводится в состояние сохраненного экземпляра Bundle.Это включает в себя такие вещи, как текст в виджете EditText и проверенное состояние реализаций CompoundButton, например RadioButton.

Не предполагается ли уничтожение фрагмента вместе с операциямиМетод onDestroy ()?

Да.

Если он сохраняется без явного вызова setRetainInstance (true), какой смысл использовать метод?

При разработке современных приложений для Android вы бы не использовали его, предпочитая вместо этого использовать систему ViewModel.Под обложками он использует setRetainInstance(true).

В более общем смысле, точка сохранения фрагмента заключается в сохранении состояния другого , чем явно изменяемое пользователем состояние виджетов.Например, у вас могут быть некоторые свойства, ссылающиеся на бизнес-объекты (например, счет-фактура, клиент), которые вы хотите сохранить при изменении конфигурации.

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