Sobes.tech
Назад к вопросам
Junior — Middle
76

Каким образом сохраняются данные в Activity при смене конфигурации, помимо использования объекта Bundle?

Компании, где спрашивали
IBS

Ответ от нейросети

sobes.tech AI

Помимо сохранения состояния через объект Bundle в методах onSaveInstanceState и onRestoreInstanceState, в Android для сохранения данных при смене конфигурации можно использовать:

  • ViewModel из архитектурных компонентов Android. ViewModel живет дольше Activity при смене конфигурации и сохраняет данные, не теряя их при пересоздании Activity.

  • Retain Fragment — фрагмент с setRetainInstance(true), который сохраняется при пересоздании Activity (устаревший подход).

  • Сохранение данных в постоянном хранилище (например, SharedPreferences, база данных), если данные должны сохраняться между сессиями.

Пример использования ViewModel:

class MyViewModel : ViewModel() {
    var data: String? = null
}

class MyActivity : AppCompatActivity() {
    private lateinit var viewModel: MyViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
        // Используем viewModel.data, она сохранится при смене конфигурации
    }
}

Таким образом, ViewModel — предпочтительный способ сохранения данных при смене конфигурации без использования Bundle.