0
我有下面的代码:的Android lockCanvas()返回帆布一台设备上,但在另一个返回null
public void messageReceived(String message) {
...
...
synchronized (getHolder()) {
if(isCreated) {
Canvas canvas = getHolder().lockCanvas();
if (canvas != null) {
draw(canvas);
getHolder().unlockCanvasAndPost(canvas);
}
}
}
...
...
}
问题是这样的:在我的HTC Desire(安卓4.1.2)的方法getHolder().lockCanvas()
回报然后我用画布在上面画东西。但在我的朋友智能手机(Android 4.2.2),它返回null,所以我不能借鉴它。有任何想法吗?
编辑 我已经改变了代码一点点只是要确定:
synchronized (getHolder()) {
if(isCreated && !isLocked) {
Canvas canvas = getHolder().lockCanvas();
isLocked = true;
if (canvas != null) {
draw(canvas);
getHolder().unlockCanvasAndPost(canvas);
isLocked = false;
}
}
}
isCreated和isLocked是公共静态布尔值。