Sobes.tech
Junior — Middle

¿De qué manera se almacenan los datos en Activity al cambiar la configuración, además del uso del objeto Bundle?

sobes.tech AI

Respuesta de la IA

Помимо сохранения состояния через объект 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.