Как состояние фрагмента сохраняется без использования setRetainInstance (true)?
Очевидное изменяемое пользователем состояние виджетов обычно автоматически переводится в состояние сохраненного экземпляра Bundle
.Это включает в себя такие вещи, как текст в виджете EditText
и проверенное состояние реализаций CompoundButton
, например RadioButton
.
Не предполагается ли уничтожение фрагмента вместе с операциямиМетод onDestroy ()?
Да.
Если он сохраняется без явного вызова setRetainInstance (true), какой смысл использовать метод?
При разработке современных приложений для Android вы бы не использовали его, предпочитая вместо этого использовать систему ViewModel
.Под обложками он использует setRetainInstance(true)
.
В более общем смысле, точка сохранения фрагмента заключается в сохранении состояния другого , чем явно изменяемое пользователем состояние виджетов.Например, у вас могут быть некоторые свойства, ссылающиеся на бизнес-объекты (например, счет-фактура, клиент), которые вы хотите сохранить при изменении конфигурации.