Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Android: android, viewmodel, savedinstancestate

Как сохранить состояние при смене конфигурации?

Вопрос проверяет знание способов сохранения данных при пересоздании Activity.

Короткий ответ

  1. onSaveInstanceState() — для простых данных (Bundle).

  2. ViewModel — для сложных данных (переживает смену конфигурации).

  3. Свои Retain-фрагменты — устаревший способ.

Длинный ответ

1. Через onSaveInstanceState:

override fun onSaveInstanceState(outState: Bundle) {  
    outState.putString("KEY", "value")  
    super.onSaveInstanceState(outState)  
}  

override fun onCreate(savedInstanceState: Bundle?) {  
    val value = savedInstanceState?.getString("KEY")  
}  

2. Через ViewModel:

class MyViewModel : ViewModel() {  
    val data = MutableLiveData<String>()  
}  

// В Activity:  
private val viewModel by viewModels<MyViewModel>()  

3. Другие способы:

  • Сохранение в базу данных (Room).

  • Использование onRetainCustomNonConfigurationInstance() (устарело).

Вывод:
ViewModel — лучший способ для сохранения данных при повороте экрана.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    1

  • Сложность:

    9

Навыки

  • Android

    Android

Ключевые слова

#android

#viewmodel

#savedinstancestate

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.