我正在开发的 OpenGL 动态壁纸中出现了一个奇怪且非常随机的错误。
我的代码的结构方式是当用户进入和退出首选项屏幕时,OpenGL 场景会“暂停”然后“恢复”。最初它工作得很好,但在实现了更多功能后(因此产生了更多开销),动态壁纸在退出首选项屏幕时偶尔会冻结。Logcat 踢出以下消息(我个人以前从未遇到过)并每隔一秒左右重复该消息,直到我手动退出壁纸:
W/SharedBufferStack(10715): waitForCondition(LockCondition) timed out (identity=4902, status=0). CPU may be pegged. trying again.
奇怪的是它是多么随机。有时它不会发生 50 次或更多“偏好退出”。其他时候它发生得更频繁。另一个奇怪的是,如果我在遇到冻结后立即尝试重新打开壁纸,logcat 将开始踢出相同的消息,并且壁纸加载屏幕挂起大约五秒钟左右,之后一切正常恢复,没有任何错误消息。
有人对如何解决或绕过此问题有任何线索吗?