В моем приложении используется меню параметров в старом стиле. В настоящее время мы ориентируемся на API 9. На Galaxy S4 я заметил следующее поведение:
- Пользователь нажимает на кнопку меню. Меню отображается, как и ожидалось.
- Пользователь нажимает «еще», чтобы получить доступ к дополнительному разделу. Раздел переполнения отображается, как и ожидалось.
- Пользователь нажимает кнопку «Назад», чтобы вернуться в исходное меню параметров. Исходное меню отображается, как и ожидалось.
На данный момент нажатие на любой элемент в меню параметров (включая параметр «Дополнительно»), похоже, не дает никакого эффекта. Однако система на самом деле кэширует эти нажатия. Если пользователь коснется меню пять раз (без видимого эффекта), затем коснется кнопки «Назад», чтобы скрыть меню, а затем коснется кнопки меню, чтобы отобразить меню еще раз, все кешированные нажатия выполняются сразу. onOptionsMenuItemSelected() вызывается один раз каждый раз, когда пользователь нажимает на этот пункт меню.
Это происходит только на S4 (и, возможно, на других устройствах Samsung). Примечательно, что я не вижу такого поведения при использовании стоковой версии Galaxy Nexus 4.2.2.
Является ли это ошибкой с настройкой Samsung Android, или, скорее всего, я делаю что-то не так в своем приложении, а стандартный код Android просто более щадящий?