我一直在研究这个问题,但我似乎无法弄清楚。我有一个简单的应用程序,有几个普通视图和一个 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 退出应用程序,然后返回应用程序,对话框将不再出现,但屏幕会变暗,就好像正在显示对话框一样。即使对话框没有显示,我也会调用 onPrepareDialog(),我在其中尝试了一些操作,例如从对话框中调用 show()。它变得有点奇怪,如果我然后切换到我的 GL 表面视图并返回对话框再次工作。我正在使用 ViewAnimator 在我的视图之间切换。我很确定我正在正确处理生命周期,而不是骑 onPause() / onResume()
@Override
protected void onResume()
{
super.onResume();
m_Sensors.StartSensors();
m_GameThread.Pause(false);
glSurface.onResume();
}
一如既往,感谢您的帮助。