我正在 Android Samsung Galaxy TAB 10.1 上开发。官方更新到4.0.4版本后经常报错:
11-01 17:04:35.382: E/gralloc(11657): GetBufferLock timed out for thread 11657 buffer 0x55 usage 0x33 LockState 1
并且设备立即重新启动。如果我正在调试自己的应用程序,这个错误看起来完全是随机的。
有什么建议吗?
附言
我唯一的一个无限绘画循环:
public void run() {
Canvas canvas = null;
while (true) {
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
synchronized (lock) {
if (!invalidated)
continue;
}
canvas = mHolder.lockCanvas();
synchronized (mHolder) {
onDraw(canvas);
}
synchronized (lock) {
invalidated = false;
}
} finally {
if (canvas != null) {
mHolder.unlockCanvasAndPost(canvas);
canvas = null;
}
}
synchronized (lock) {
if (painter == null)
break;
}
}
}