Прекращение активности приводит к тому, что диалоговые окна не отображаются при перезапуске

#android #dialog #android-lifecycle

#Android #диалоговое окно #android-жизненный цикл

Вопрос:

Я ковырялся в этой проблеме и, похоже, не могу в ней разобраться. У меня есть простое приложение с несколькими обычными представлениями и видом поверхности GL, я создаю несколько диалоговых окон, используя onCreateDialog (), и все кажется прекрасным.

 @Override
protected Dialog onCreateDialog(int id)
{
     super.onCreateDialog(id);

     Dialog m_Dialog = null;

     // help dialog
     if (id == HELP_DIALOG)
     {
        m_Dialog = new Dialog(this);
        m_Dialog.setContentView(R.layout.help_dialog);
        m_Dialog.setTitle("Instructions - Press BACK to close");
     }
 }
  

Однако, если я использую home для выхода из приложения, а затем возвращаюсь в приложение, диалоги больше не отображаются, однако экран тускнеет, как если бы отображался диалог. Я получаю вызов onpreparredialog (), даже когда диалоговое окно не отображается, я пробовал некоторые вещи там, например, вызов show () из диалогового окна. Это становится немного более странным, если я затем переключусь на свой GL surface view и вернусь к работе диалоговых окон снова. Я использую ViewAnimator для переключения между моими представлениями. Я почти уверен, что правильно обрабатываю жизненный цикл, используя onPause () / onResume ()

 @Override
protected void onResume()
{
    super.onResume();
    m_Sensors.StartSensors();       
    m_GameThread.Pause(false);
    glSurface.onResume();
}
  

Как всегда, спасибо за помощь.

Ответ №1:

Я не пробовал работать с GL на Android, но недавно сам столкнулся с некоторыми странностями с кнопкой home / повторного открытия приложения — в моем случае это оказалось связано с проблемами ниже, которые вы, возможно, захотите проверить:

http://code.google.com/p/android/issues/detail?id=5277

http://code.google.com/p/android/issues/detail?id=2373

Надеюсь, это поможет вам встать на правильный путь.