Просмотр потери способности принимать ключевые события

Я немного смущен тем, как ключевые события (клавиша возврата, клавиши громкости) связаны с представлениями в Android.

Возьмем, к примеру, проблему, которая у меня сейчас есть:

Работает нормально

  • Создать макет (например, относительный макет)
  • Добавить представление в макет (GL SurfaceView)
  • Запустите приложение и подождите, пока все загрузится (и будет создан GLSurfaceView)
  • Нажмите клавишу домой
  • Перезапустить приложение
  • Нажмите назад, чтобы выйти

Не работает нормально

  • Создать макет (например, относительный макет)
  • Добавить представление в макет
  • Запустите приложение и нажмите клавишу Home, прежде чем GLSurfaceView будет полностью создан/отображен
  • Быстро снова запустите приложение до того, как GLSurfaceView будет полностью создан/отображен
  • Дождитесь отображения SurfaceView
  • Хотя сенсорные события работают, клавиши больше не работают, и приложение нельзя закрыть

почему это? Есть ли способ вернуть фокус к этому представлению? (если «фокус» является правильной терминологией в этом примере).

я пробовал

myGLView.requestFocus();

Я также пробовал различные другие методы, но, похоже, ничего не работает - наверняка должен быть быстрый и простой способ убедиться, что ключевые события работают с видимым в данный момент GLSurfaceView?


person Zippy    schedule 29.07.2014    source источник
comment
приложение не может быть закрыто - вы говорите, что домашняя клавиша перестает работать после того, как вы быстро выходите и возвращаетесь в приложение? Какое устройство и версию Android вы используете?   -  person fadden    schedule 30.07.2014
comment
Нет, @fadden, клавиша «Домой» все еще работает, но клавиша «Назад» (и клавиши громкости) перестают работать — это KitKat 4.4.4. на планшете Google Nexus 10 :-)   -  person Zippy    schedule 30.07.2014