我注意到一个似乎只出现在Android 4.3上的问题。我使用的是AlertDialog,当方向发生变化时,我会通过将对话框状态存储在onSaveInstanceState()中来消除它并在onCreate函数中显示它。
在其他版本的android(4.0.x、4.1.x、4.2.x、2.3.x)上,这运行得非常好。我可以多次旋转设备,对话框永远不会消失,但在Android 4.3上,如果我旋转屏幕足够多,对话框会消失,但如果我再次旋转屏幕,对话框会立即重新出现。我注意到,每当对话框消失时,我都会在Logcat中看到一个GL_INVALID_OPERATION
错误。
我想知道这是否是一个已知的错误,或者是否有任何解决方法。
经过大量测试,这似乎是一个定时故障。我不太确定后台发生了什么,但我可以从行为中猜测,当试图显示对话框时,一些GL对象没有准备好,导致对话框无法绘制。
我找到了一个解决方法,只需在类中声明一个处理程序,并对该处理程序执行post事件以显示对话框。它似乎给了活动足够的时间来初始化所有内容,并且问题不再发生。