Управление изменениями конфигурации съемной клавиатуры

Система Android инициирует изменение конфигурации каждый раз при подключении или отключении клавиатуры от устройства. Чтобы обеспечить бесперебойную работу и максимальную производительность на устройствах с большим экраном и съёмной клавиатурой, ваше приложение должно эффективно управлять изменениями конфигурации клавиатуры.

Результаты

Ваше приложение реагирует на подключение или отключение внешней клавиатуры, не воссоздавая запущенную активность.

Запретить восстановление активности при смене клавиатуры

Чтобы предотвратить повторное создание вашей активности при подключении или отключении съемной клавиатуры, добавьте значения, связанные с клавиатурой, в атрибут configChanges манифеста вашего приложения и добавьте представление в иерархию представлений активности, чтобы ваше приложение могло отслеживать изменения конфигурации.

1. Объявите атрибут configChanges

Обновите элемент <activity> в манифесте приложения, добавив значения keyboard|keyboardHidden в список уже управляемых изменений конфигурации:

<activity
    ...
    android:configChanges="...|keyboard|keyboardHidden">

2. Добавьте пустое представление в иерархию представлений.

Объявите новое представление и добавьте код обработчика в метод onConfigurationChanged() представления:

Котлин

val v = object : View(this) {
    override fun onConfigurationChanged(newConfig: Configuration?) {
        super.onConfigurationChanged(newConfig)
        // Handler code here.
    }
}

Ява

View v = new View(this) {
    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Handler code here.
    }
};

Ключевые моменты

  • android:configChanges : атрибут элемента <activity> манифеста приложения. Информирует систему об изменениях конфигурации, которыми управляет приложение.
  • View#onConfigurationChanged() : Метод, который реагирует на распространение новой конфигурации приложения.

Коллекции, содержащие это руководство

Это руководство является частью тщательно подобранной коллекции кратких руководств, охватывающих более широкие цели разработки Android:

Обеспечьте своему приложению поддержку оптимизированного пользовательского опыта на планшетах, складных устройствах и устройствах ChromeOS.

Есть вопросы или отзывы

Перейдите на нашу страницу часто задаваемых вопросов и ознакомьтесь с краткими руководствами или свяжитесь с нами и поделитесь своими мыслями.
,

Система Android инициирует изменение конфигурации каждый раз при подключении или отключении клавиатуры от устройства. Чтобы обеспечить бесперебойную работу и максимальную производительность на устройствах с большим экраном и съёмной клавиатурой, ваше приложение должно эффективно управлять изменениями конфигурации клавиатуры.

Результаты

Ваше приложение реагирует на подключение или отключение внешней клавиатуры, не воссоздавая запущенную активность.

Запретить восстановление активности при смене клавиатуры

Чтобы предотвратить повторное создание вашей активности при подключении или отключении съемной клавиатуры, добавьте значения, связанные с клавиатурой, в атрибут configChanges манифеста вашего приложения и добавьте представление в иерархию представлений активности, чтобы ваше приложение могло отслеживать изменения конфигурации.

1. Объявите атрибут configChanges

Обновите элемент <activity> в манифесте приложения, добавив значения keyboard|keyboardHidden в список уже управляемых изменений конфигурации:

<activity
    ...
    android:configChanges="...|keyboard|keyboardHidden">

2. Добавьте пустое представление в иерархию представлений.

Объявите новое представление и добавьте код обработчика в метод onConfigurationChanged() представления:

Котлин

val v = object : View(this) {
    override fun onConfigurationChanged(newConfig: Configuration?) {
        super.onConfigurationChanged(newConfig)
        // Handler code here.
    }
}

Ява

View v = new View(this) {
    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Handler code here.
    }
};

Ключевые моменты

  • android:configChanges : атрибут элемента <activity> манифеста приложения. Информирует систему об изменениях конфигурации, которыми управляет приложение.
  • View#onConfigurationChanged() : Метод, который реагирует на распространение новой конфигурации приложения.

Коллекции, содержащие это руководство

Это руководство является частью тщательно подобранной коллекции кратких руководств, охватывающих более широкие цели разработки Android:

Обеспечьте своему приложению поддержку оптимизированного пользовательского опыта на планшетах, складных устройствах и устройствах ChromeOS.

Есть вопросы или отзывы

Перейдите на нашу страницу часто задаваемых вопросов и ознакомьтесь с краткими руководствами или свяжитесь с нами и поделитесь своими мыслями.