CPU可能挂钩,OpenGL动态壁纸锁定

时间:2011-04-28 05:25:38

标签: android opengl-es cpu live-wallpaper

我正在开发的OpenGL动态壁纸中出现一个奇怪的,非常随机的错误。

我的代码的结构使得当用户进入和退出“首选项”屏幕时,OpenGL场景“暂停”然后“恢复”。最初它工作得非常好,但是在实现更多功能(从而产生更多开销)之后,当退出“首选项”屏幕时,动态壁纸偶尔会冻结。 Logcat踢出以下消息(我以前从未遇到过)并且每隔一秒左右重复一次消息,直到我手动退出壁纸:

W/SharedBufferStack(10715): waitForCondition(LockCondition) timed out (identity=4902, status=0). CPU may be pegged. trying again.

奇怪的是它是多么随机。有时它不会出现50“偏好 - 出口”或更多。其他时候它更频繁地发生。另一个奇怪的是,如果我尝试在遇到冻结后立即重新打开壁纸,logcat将开始踢出相同的消息,壁纸加载屏幕会挂起大约五秒钟左右,之后一切都会正常恢复而不会再出现任何错误消息。

任何人都有关于如何解决或绕过此问题的任何线索?

1 个答案:

答案 0 :(得分:2)

好吧,找到了我的问题的答案。毕竟这与我的代码无关,而是GLWallpaperService库本身的一个错误。我应该早点检查开发者的网站:

https://github.com/markfguerra/GLWallpaperService/issues/7

https://github.com/markfguerra/GLWallpaperService/issues/11