#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
Надеюсь, это поможет вам встать на правильный путь.