Что такое изменение конфигурации Что происходит с приложением на Android при этом
Изменение конфигурации в Android происходит, когда система изменяет свои параметры, такие как ориентация экрана, язык устройства, размер шрифта и другие настройки. Приложения должны адаптироваться к этим изменениям, чтобы обеспечить плавный и удобный пользовательский опыт.
Когда происходит изменение конфигурации, система пересоздает активности (Activity) по умолчанию, чтобы обновить их в соответствии с новыми параметрами. Это может привести к потере данных и неудобству для пользователей.
Для того чтобы предотвратить пересоздание активности и сохранить ее состояние при изменении конфигурации, можно использовать следующие методы:
android:configChanges
: Вы можете указать в манифесте активности, какие конфигурации следует обрабатывать самостоятельно, чтобы предотвратить пересоздание активности. Для этого используется атрибут android:configChanges
.<activity
android:name=".MyActivity"
android:configChanges="orientation|screenSize|screenLayout">
onConfigurationChanged
: При использовании атрибута android:configChanges
нужно также переопределить метод onConfigurationChanged
в коде активности и выполнить необходимые действия при изменении конфигурации.override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
// Выполнить необходимые действия при изменении конфигурации, например, обновление пользовательского интерфейса
}
onSaveInstanceState
и onRestoreInstanceState
, а также объект Bundle.class MyActivity : AppCompatActivity() {
private var counter = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
savedInstanceState?.let {
counter = it.getInt("counter")
// Восстановить состояние
}
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putInt("counter", counter)
// Сохранить состояние
}
}
В этом примере переменная counter
сохраняется и восстанавливается при изменении конфигурации с помощью методов onSaveInstanceState
и onRestoreInstanceState
.