Как программно проверить, меню моей активности отображается в определенный момент?

Изменение конфигурации устройства Android (например, «вставьте жесткую клавиатуру обратно») всегда будет вызывать PhoneWindow.onConfigurationChanged(), который, в свою очередь, вызовет reopenMenu(). Это приведет к тому, что меню текущего выполняемого действия будет повторно открыто, если оно отображается.

У меня есть блокировка моего меню, реализованная в моем переопределении onPrepareOptionsMenu(). Пользователь должен вводить код каждый раз, когда он хочет увидеть меню. Я не хочу, чтобы пользователя просили снова ввести код, пока меню все еще работает только из-за изменения конфигурации.Таким образом, я хотел бы знать, есть ли способ проверить, отображается ли уже меню текущей активности переднего плана? Зная это, я мог бы не запрашивать код доступа, если меню уже открыто.

Моя собственная реализация обходного пути заключается в использовании моего собственного флага menuShowing, который я установил в onPrepareOptionsMenuи сбросил в onOptionsItemSelectedи в onKeyDownпри нажатии кнопки «Назад».

РЕДАКТИРОВАТЬ: Похоже, что изменение конфигурации ориентации экрана не приводит к такому поведению. Однако жесткое скольжение по клавиатуре помогает.

7
задан Stefan Anca 11 May 2012 в 09:59
поделиться