Изменение конфигурации устройства Android (например, «вставьте жесткую клавиатуру обратно») всегда будет вызывать PhoneWindow.onConfigurationChanged()
, который, в свою очередь, вызовет reopenMenu()
. Это приведет к тому, что меню текущего выполняемого действия будет повторно открыто, если оно отображается.
У меня есть блокировка моего меню, реализованная в моем переопределении onPrepareOptionsMenu()
. Пользователь должен вводить код каждый раз, когда он хочет увидеть меню. Я не хочу, чтобы пользователя просили снова ввести код, пока меню все еще работает только из-за изменения конфигурации.Таким образом, я хотел бы знать, есть ли способ проверить, отображается ли уже меню текущей активности переднего плана? Зная это, я мог бы не запрашивать код доступа, если меню уже открыто.
Моя собственная реализация обходного пути заключается в использовании моего собственного флага menuShowing
, который я установил в onPrepareOptionsMenu
и сбросил в onOptionsItemSelected
и в onKeyDown
при нажатии кнопки «Назад».
РЕДАКТИРОВАТЬ:
Похоже, что изменение конфигурации ориентации экрана не приводит к такому поведению. Однако жесткое скольжение по клавиатуре помогает.