Android 4.3 上的屏幕旋转对话框
Posted
技术标签:
【中文标题】Android 4.3 上的屏幕旋转对话框【英文标题】:Dialog on Screen Rotation on Android 4.3 【发布时间】:2013-08-15 18:02:52 【问题描述】:我注意到一个似乎只发生在 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
错误。
我想知道这是否是一个已知的错误,或者是否有任何解决方法。
【问题讨论】:
【参考方案1】:经过大量测试,这似乎是一个时序故障。我不太确定后台发生了什么,但我可以从尝试显示对话框时某些 GL 对象未准备好导致对话框无法绘制的行为猜测。
我找到了一种解决方法,只需在类中声明一个处理程序并向该处理程序执行一个发布事件以显示对话框。它似乎给了 Activity 足够的时间来初始化所有内容,并且不再出现问题。
【讨论】:
以上是关于Android 4.3 上的屏幕旋转对话框的主要内容,如果未能解决你的问题,请参考以下文章
YouTube 视频在 WebView Android 中仅在屏幕旋转时播放音频
UnsatisfiedLinkError - 在 Android 中旋转相机图像数据(在 OpenCV 中使用,而不仅仅是在屏幕上显示)