我正在开发的 OpenGL 动态壁纸中出现了一个奇怪且非常随机的错误。
我的代码的结构使得 OpenGL 场景在用户进入和退出首选项屏幕时“暂停”然后“恢复”。最初它工作得很好,但在实现更多功能后(因此会产生更多开销),当退出首选项屏幕时,动态壁纸偶尔会卡住。 Logcat 踢出以下消息(我个人以前从未遇到过)并每隔一秒左右重复该消息,直到我手动退出墙纸:
W/SharedBufferStack(10715): waitForCondition(LockCondition) timed out (identity=4902, status=0). CPU may be pegged. trying again.
奇怪的是它是多么的随机。有时它不会发生 50 个“偏好退出”或更多。其他时候它发生得更频繁。另一个奇怪的是,如果我在遇到卡住后立即尝试重新打开墙纸,logcat 将开始踢出相同的消息,墙纸加载屏幕会挂起大约五秒钟左右,之后一切都会恢复正常,不再出现任何错误消息。
任何人都知道如何解决或绕过此问题的任何线索?
最佳答案
嗯,找到了我的问题的答案。毕竟这与我的代码无关,而是 GLWallpaperService 库本身的一个错误。我应该早点检查开发者的网站:
https://github.com/markfguerra/GLWallpaperService/issues/7
https://github.com/markfguerra/GLWallpaperService/issues/11
关于android - CPU 可能挂了,OpenGL 动态壁纸锁定,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5814002/